find <?xml:namespace prefix = o />

名称:在指定的目录中递归搜索文件或目录。

总揽:

     find [-H] [-L] [-P] [-D debugopts] [-0 level] [psth……] [expression]

描述:

    find命令递归搜索目录列表中的目录,找出符合表达式(第二个参数)描述的文件。

表达式可以由一个或多个标准组成。

options:

   选项-H,-P,-L选项用于控制符号链接,命令行后面以'-'开头的选项后面第一个参数为

搜索的路径,第二个参数为要搜索的目录或文件。若未指定搜索的路径则默认搜索路径为

当前目录。若未指定表达式则默认表达式为-print(在某些情况下你可以考虑使用-print0

代替).

   该手册页所说的'option'是指在表达式中的,用于控制find的行为。直接位于指定搜索

路径之后。有5个真正的'option'为:-H,-L,-P,-D,-0比须放在指定的搜索路径前,--用于

说明他后面指定的不是选项。

   -P:不进入符号链接目录中而只进入他指向的目录中。这是默认的行为,当find检查或

打印指定文件的信息,若指定的文件是符号链接的话则打印该符号链接的信息。

   -L:进入符号链接,当find检查或打印指定文件的信息,若指定的文件是符号链接的话则

打印他所指向的文件的信息。

   -H:除了执行命令行的参数时才进入符号链接,否则不进入符号链接中。

 若同时指定-H,-L,-P选项的话只是最后一个选项有效。默认情况下有效的是-P除非指定

-H,-L选项。

   -D debugoptions 打印诊断信息,对于诊断为什么find不按照你想的方式执行时很有

效。调试选项列表有','隔开。输入find -D help显示所有有效的诊断选项。

   -0 level使用查询的优先级。

expression:

    表达式由选项(影响find行为且返回值总为true)、测试(返回truefalse)、行为由

操作符隔开组成的。-and是缺省的操作符。

    若未指定动作则默认执行-print动作。

 1.option(选项)

  

      所有的选项返回值总是True-daystart,-follow,-regextype会影响选项前的

测试表达式外,其他选项都是普通的选项。这是因为选项在命令行语法检查时执行,而测试表

表达式知道检查文件时才执行。

      -daystart,-regextype,-follow比较特殊他们只影响跟在他们后面的测试表达

式,因此,为了清楚,最好将他们放在表达式开始,若你不这样作的话将会有一个警告。

       -d:-depth同样,仅用于FreeBSD,NETBSD,MacOS X,OpenBSD

       -daystart:测试时间(-amin,-atime,-cmin,-ctime,-mmin,-mtime)开始

          为今天而不是24小时前。

       -follow:反对使用,用-L选项代替,进入符号链接,含有-noleaf。该选项只影

 

          响命令行中跟在他后面的测试表达式。除非指定了-H,-L选项,-follow的位

          置会改变-newer的行为。若-newer后面指定的参数文件为符号链接文件的话

       -newer的行为就会改变。相似的,-type将使用链接文件指向的文件作为类型

           判断的文件而不是使用符号链接文件。使用-follow使-lname-ilname

     

           回false.

        -regextype type:改变命令行中后面指定-regex-iregex了解的语法。现

            在支持的类型:emacs(默认),posix-awk,posix-basic,posix-egrep,

            posix-extended

        -version,--version:显示find的版本信息并退出。

        -depth:在目录之前执行每个目录的内容。

        -help,--help:显示find的帮助信息并退出。

        -ignore_readdir_race:通常情况下,find不能报告一个文件的状态时会发送一

            个错误信息。若指定该选项 当一个文件名先被find读取后还未使用时该文件被删除了 ,当

     find要报告该文件的状态时不发送错误信息。 该选项也应用于命令行中指定的文件和目录

             该选项在find读取该选项后就起作用。

        -noignore_readdir_race:关闭-ignore_readdir_race的影响

        -maxdepth Level:递归搜索目录时最多进入Level曾子目录中搜索。Level为非负数。

         

     ‘-maxdepth 0’ 意味着只在命令行参数指定的目录中执行测试和 动作。

        -mindepth Level:在目录的Level(非负数)层目录中不进行测试和行为.

     ‘-mindepth  1’意味着处理所有的文件,除了命令行参数指定的目录中的文件。 

        -mount  不进入处于其它文件系统之上的目录。可以用-xdev代替,从而和一些其

      

              他版本的 find 兼容。

        -noleaf 不为目录中子目录数量比硬连接数少2”这种假设做优化。这个选项 在

      

             搜 索 那 些 不 遵 循UNIX 文 件 系 统 链 接约定的文件系统时用,比

     

            如CD-ROM,MS-DOS文件系统或AFS卷的加载点。在普通的UNIX文件系统 中,

   

            每个目录至少有两个硬连接,它的名字和它的 ’.’ 条目。另外,它的子目

  

          录(假如有)还会各有一个 ’..’ 链接到它。在 find 检索一个目录时,发

 

           现 子目录数比它的连接数少二时,它就知道目录中的其他条目并非目录(

          而是目录树中的叶(‘leaf’)节点)。除非需要检索的是这个叶节点,否 则

         没必要去处理它。这样可以带来很大的搜索速度提升。

        -warn,-nowarn:开启或关闭警告信息.

        -xdev:不进入其他文件系统,等价于-mount

        -xautofs:不进入autofs文件系统。

测试:

    数字参数可以这样指定

        +n 大于n

        -n 小于n

        n 等于n

        -amin N:文件在N分钟前访问过

        -anewer File:   文件的最后访问时间比指定的文件File的修改时间晚。

        -atime N:文件的最后访问时间为N*24小时

        -cmin N:文件的状态最后改变的时间为N分钟。

        -cnewer File:文件的状态最后改变的时间比指定文件File的修改时间晚

        -ctime N :文件的状态的最后修改时间在N*24小时之前。

  

        -empty:指定的文件为空的(指定文件可以为普通文件或目录)

        -false:总是错误

        -fstype Type:文件在指定的文件系统Type中,文件系统类型:ufs,  4.2, 4.3, nfs, 

     tmp, mfs, S51K, S52K. 你可以用 -printf 加 上 %F 指令来查看你的文件系统的类型。

         -gid N:文件所属的组IDN

         -group Name:文件所属的组名为Name

         -ilname Pattern:类似-lname,但是匹配区分大小写。

         -iname Pattern:类似-name,但是匹配区分大小写。