find命令简介:

       find命令:在目录成次结构中实时、精确查找文件,查找时对文件系统进行遍历,能够进行递归查找,查找速度比较慢。find用于

文件查找时根据指定的条件进行精确找找,会将查找结果中符合指定条件的文件全部列出来。它的使用权限是所有用户。

       grep与find不同,grep用文本搜索,其对象是文本流


find命令使用格式:

       find [options] [path...] [conditions] [actions]


       path:默认为当前目录

       conditions:默认为查找指定路径下的所有文件

       actions:默认为显示

find命令的用法:


   options:选项


           -xdev:不在其它文件系统的目录中搜索。

linux中的find命令_文件查找

linux中的find命令_find grep_02

linux中的find命令_find grep_03


linux中的find命令_follow_04


 -mindepth <n>:搜索文件时至少要深入到指定目录的第 n 层子目录。

linux中的find命令_find grep_05

-follow:如果符号链接到目录,则跟随符号链接进入。默认情况下,find不跟随链接。

linux中的find命令_linux_06

-daystart:当使用与事件相关的测试时,将当天的开始时间作为时间戳,而不是默认值(从当前时间倒退24个小时)仅作用于命令行出现的测试。


conditions:查找条件


-name "filename":按文件名称查找,支持文件名通配符。            

例:在当前目录下查找文件名以L或l开头的文件

linux中的find命令_follow_07


-iname "filename":按文件名查找,忽略大小写字母,支持文件名通配符。

例:在当前目录下查找文件名以L或l开头的文件

linux中的find命令_文件查找_08


-user UserName:按文件所属的属主查找

-user GroupName:按文件所属的属组查找

例:查找当前目录下文件所属的属主为hadoop的所有文件

linux中的find命令_文件查找_09

-uid UID:根据文件所属的UID查找文件

    n: 查找文件所属的UID为n的所有文件

    +n:查找文件所属的UID大于n的所有文件

    +n:查找文件所属的UID小于大于n的所有文件

-gid GID:根据用的GID查找文件    

     n: 查找文件所属的GUID为n的所有文件

     +n:查找文件所属的GUID大于n的所有文件

     +n:查找文件所属的GID小于大于n的所有文件

例:查找当前目录下文文件所属组的gid为123的所有文件

linux中的find命令_linux_10

例:+n:查找文件所属的UID大于1000的所有文件

linux中的find命令_find grep_11

linux中的find命令_文件查找_12

例:查找文件所属的UID小于1000的所有文件

linux中的find命令_follow_13

-empty:查找所有为空的文件

例:查找所有的空文件

linux中的find命令_find grep_14


-nouser:查找所有没有属主的文件

-nogroup:查找所有没有属组的文件

例:当前目录下查找所有没有属主的文件

linux中的find命令_文件查找_15


-type:根据文件类型进行查找

   常见的文件类型有:

      f:普通文件

      d:目录文件

      c:字符设备文件

      l:符号链接文件

      b:块设备文件

      p:管道文件

      s:套接字文件

例: 查找/var/spool/postfix/public/目录下的所有套接字文件

linux中的find命令_find grep_16

-size:根据用户指定文件的大小进行查找(常用单位K|M|G)

n:查找指定条件下大小为n的文件

例:在当前目录下查找大小为1M的文件

linux中的find命令_find grep_17


+n:查找指定条件下文件大于n的文件

例:在当前目录下查找大于10k的文件

linux中的find命令_find grep_18


-n:查找指定条件下文件小于n的文件

例:在当前目录下查找小于4k的文件

linux中的find命令_linux_19


根据时间戳查找文件:


           -atime:单位为天

                 +n:在指定条件下查找n+1天前被访问过的文件

                 -n:在指定条件下查找n天之内被访问过的文件

                  n:查找从当前时间算起前n天以内被访问过的文件

           -ctime:单位为天

                 +n:在指定条件下查找n+1天前被改变的文件

                 -n:在指定条件下查找n天之内被改变的文件

                  n:查找从当前时间算起前n天以内被改变的文件


           -mtime:单位为天

                 +n:在指定条件下查找n+1天前修改过的文件

                 -n:在指定条件下查找n天之内被修改过的文件

                  n:查找从当前时间算起前n天以内修改过的文件


           -amin:单位为分钟

                 +n:在指定条件下查找n+1分钟前被访问过的文件

                 -n:在指定条件下查找n分钟内被访问过的文件

                  n:查找从当前时间算起前n分钟被访问过的文件

           -cmin:单位为分钟

                 +n:在指定条件下查找n+1分钟前被改变的文件

                 -n:在指定条件下查找n分钟之内被改变的文件

                  n:查找从当前时间算起前n分钟以内被改变的文件


           -mmine:单位为分钟

                 +n:在指定条件下查找n+1分钟前修改过的文件

                 -n:在指定条件下查找n分钟之内被修改过的文件

                  n:查找从当前时间算起前n分钟以内修改过的文件

例:在/var目录下查找9天之前被访问过的文件

linux中的find命令_follow_20


例:在/var目录下查找20分钟以内被访问过的文件和3分钟以内被访问过的文件

linux中的find命令_find grep_21


例:在/var目录下查找前3天被修改过的文件

linux中的find命令_follow_22


-perm:在指定条件下根据文件的权限进行查找

     MODE:查找时按精确的文件的权限进行匹配

例:在/tmp目录下查找权限为641的所有文件

linux中的find命令_linux_23

    -MODE:在指定条件下只要文件的属主、属主或其他用户的任意权限与对应指定权限中的任意一位匹配就能够被查

找到。通常用于查找文件的特定权限位是否存在。

例:在/tmp/mtest/目录下其他用户具有可执行权限的文件

linux中的find命令_follow_24

   +MODE:在指定条件下只要文件中的权限包含指定的权限就会被查找到。

例:在/tmp/mtest目录下查找属组具有读和执行权限,其他用户具有执行权限的所有文件。

linux中的find命令_linux_25



actions:

    -print:在指定条件下以将匹配的文档输出到标准输出(默认find执行该动作)

    -ls:在指定条件下以长格式输出文件的信息

    -exec command { } \;:在指定条件下以对匹配的文档执行所给的shell命令。形式为:注意{ }和\;之间的空格
    -ok:和-exec作用相同。只但是以种更安全的模式执行该参数所给的shell命令。在执行每个命令之前,都会给出提示,

让用户确定是否执行


例:在/tmp/mtest目录下查找属组具有读和执行权限,其他用户具有执行权限的所有文件,并以长格式显示。

linux中的find命令_linux_26


  |xargs commond:  xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小

的块,以方便过滤器和命令进行处理。xargs从管道从文件的输出中读取数据,它能够捕获一个命令的输出,然后传递给另外一个命令。


例:在/tmp/目录下查找空文件并将其删除.

linux中的find命令_文件查找_27