`

find

阅读更多


[trixbox1.localdomain ~]# cd /var/spool/asterisk/monitor
[trixbox1.localdomain monitor]# cat find /- *15927470673*.wav
cat: find: No such file or directory
cat: /-: No such file or directory
cat: *15927470673*.wav: No such file or directory
[trixbox1.localdomain monitor]# find  *15927470673*
find: *15927470673*: No such file or directory
[trixbox1.localdomain monitor]#

 

、find 命令格式

1、find命令的一般形式为;

find pathname -options [-print -exec -ok ...]
2、find命令的参数;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
3、find命令选项

-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-amin n
  查找系统中最后N分钟访问的文件
  -atime n
  查找系统中最后n*24小时访问的文件
  -cmin n
  查找系统中最后N分钟被改变文件状态的文件
  -ctime n
  查找系统中最后n*24小时被改变文件状态的文件
 -mmin n
  查找系统中最后N分钟被改变文件数据的文件
  -mtime n
  查找系统中最后n*24小时被改变文件数据的文件
4、使用exec或ok来执行shell命令

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的
在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。
例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec rm { } \;
记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。
在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。
$ find . -name "*.conf" -mtime +5 -ok rm { } \;
? n
按y键删除文件,按n键不删除。
任何形式的命令都可以在-exec选项中使用。
在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。
# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash


本篇文章来源于 黑客基地-全球最大的中文黑客站 原文链接:http://hackbase.com/tech/2008-04-29/40594.html

分享到:
评论

相关推荐

    findpeaks.zip_findpeaks_波峰_波峰函数

    "findpeaks.zip_findpeaks_波峰_波峰函数" 提供了一个名为 "findpeaks.m" 的 MATLAB 子函数,用于帮助用户在给定的数据序列中识别这些波峰。下面我们将详细探讨波峰检测的重要性、基本概念以及如何使用这个特定的 ...

    C++find()函数用法

    在C++编程语言中,`find()`函数是一个非常实用的工具,主要应用于标准库中的算法,尤其是`<algorithm>`头文件中。这个函数允许程序员在序列(如数组、向量或列表)中查找特定元素。在本文中,我们将深入探讨`find()`...

    N-FINDR解混算法研究

    ### N-FINDR 解混算法研究 #### 摘要 N-FINDR(Near-Infrared Feature Identification and Determination Routine)是一种快速自主光谱端元确定算法,在高光谱数据处理领域具有重要的应用价值。该算法由Michael E....

    VB 查找函数Find

    在Visual Basic (VB)编程中,`Find`函数是一个非常重要的功能,用于在特定范围内查找满足特定条件的数据。这个函数通常被用在处理大量数据,如电子表格、文本文件或数据库记录时,需要快速定位特定信息的情景。下面...

    最全最新的matlab----findpeaks代码运用

    在MATLAB中,`findpeaks`函数是一个非常实用的工具,用于在信号处理和数据分析中寻找峰值。这个函数能够帮助我们识别数据中的最高点或局部最大值,这对于许多领域,如信号处理、图像分析、物理学和工程学等,都至关...

    用WIN32_FIND_DATA+FindFirst读出文件

    `WIN32_FIND_DATA`结构和`FindFirstFile`、`FindNextFile`函数是微软提供的API,用于实现这一功能。在这个场景中,我们将深入理解这些概念以及如何在VC++环境下使用它们。 `WIN32_FIND_DATA`是一个在Windows API中...

    C++ STL find_if使用的一个完整例子

    `find_if`是STL中的一个算法,它用于在一个范围内的元素序列中查找第一个满足特定条件的元素。在这个例子中,我们将详细探讨`find_if`的使用以及如何在实际代码中应用它。 `find_if`函数通常在`<algorithm>`头文件...

    findpeaks.rar_constructionmgz_findpeak_findpeaks_寻峰_寻峰 matlab

    这个压缩包"findpeaks.rar"包含了名为"constructionmgz_findpeak_findpeaks_寻峰_寻峰 matlab"的相关资料,特别是其中的"findpeaks.m"文件,很可能是一个自定义版本或带有注释的findpeaks实现,对于初学者来说是学习...

    Linux find 按文件修改时间查找文件

    ### Linux find 按文件修改时间查找文件 在Linux系统中,`find`命令是非常强大的文件搜索工具之一,它能够帮助用户根据不同的条件查找文件,包括文件名、大小、类型以及文件最后修改时间等。本篇文章将重点介绍如何...

    Find Reference 2 插件包

    "Find Reference 2 插件包"是一款专为大型项目设计的高效工具,它在Unity游戏开发环境中扮演着至关重要的角色。在处理复杂的项目时,往往会出现资源冗余,这不仅占用了大量的存储空间,还可能导致性能下降。该插件...

    Mysql中FIND_IN_SET()和IN区别简析

    在MySQL数据库中,`FIND_IN_SET()` 和 `IN` 是两种不同的查询方法,它们在处理数据集时有不同的特性和应用场景。本文将对这两种方法进行详细对比,以帮助理解它们之间的差异。 `FIND_IN_SET()` 函数主要用于在一个...

    C++利用 _findfirst与_findnext查找文件的方法

    这些函数和结构体在的头文件中,结构体为struct _finddata_t ,函数为_findfirst、_findnext和_fineclose。具体如何使用,下面来一起看看吧 _findfirst与_findnext查找文件 一、这两个函数均在io.h里面。 二、首先...

    C# list对象FindAll函数的四种写法

    在本篇文章中,我们将详细探讨`List<T>`的`FindAll`方法,并通过四种不同的写法来演示如何使用这个功能来筛选满足特定条件的元素。`FindAll`方法用于在列表中找到符合指定条件的所有元素,返回一个新的`List<T>`实例...

    Could not find the main class

    "解决 MyEclipse 8.5 中的 “Could not find the main class” 问题" "Could not find the main class" 是一个常见的错误提示,出现于 MyEclipse 8.5 中使用外带的 Tomcat 时,因 JDK 版本问题所引起。下面将详细...

    用richTextBox1.Find实现查找功能,C#源代码

    在实际应用中,我们经常需要为用户提供查找(Find)和替换(Replace)的功能,以便他们能快速定位到特定的文本内容。`richtextbox1.Find`方法就是实现这一功能的关键。 `richtextbox1.Find`方法是`richtextbox`控件...

    gethibernatetemplate的find方法

    gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...

    Linux Find命令详解---教你认识强大的Linux Find命令

    Linux Find命令是Linux系统中一个极其重要的工具,它允许用户在文件系统中查找符合特定条件的文件和目录。这个命令的灵活性和强大性使得它成为系统管理员和开发者的必备技能。下面将详细介绍Linux Find命令的一些...

    Find My Network Accessory Specification R2

    "Find My Network Accessory Specification R2" 是一份针对苹果MFi(Made for iPhone/iPod/iPad)认证配件的开发者文档,旨在详细阐述如何使非Apple设备能够与Apple的"Find My"服务集成,以实现设备定位、追踪和保护...

    使用find命令查找Linux中的隐藏文件的方法.docx

    使用find命令查找Linux中的隐藏文件的方法 find命令是Linux和Unix系统中最强大和灵活的命令之一,能够根据不同的选项和参数来实现各种文件搜索和管理任务。下面将详细介绍如何使用find命令查找Linux中的隐藏文件。 ...

Global site tag (gtag.js) - Google Analytics