首页 > 代码库 > find命令详解

find命令详解

linux下的实时查找工具,通过遍历指定目录下的文件系统完成文件查找。

  工作特点:查找速度略慢,精确查找,实时查找

  命令使用格式:

    find [OPTION]... [查找路径] [查找条件]... [处理动作]

      查找路径:指定具体目标路径,默认为当前目录

      查找条件:指定的查找标准,可以指定文件名、大小、类型、权限等标准进行,默认为找出指定路径下的所以文件

      处理动作:对符合条件的文件做什么操作,默认为输出至屏幕

 

      查找条件:

        根据文件名查找:

          -name "文件名":支持使用通配符

              *,?,[],[^]

          -iname "文件名":不区分字母大小写

          -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名

        根据属主、属组查找:

          -user USERNAME:查找属组为指定用户的文件

          -group GRPNAME:查找属组为指定组的文件

          -uid UserID:查找属组为指定uid的文件

          -gid GroupID:查找属组为指定gid的文件

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

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

        根据文件类型查找

          -type TYPE:

            f:普通文件

            d:目录文件

            l:符合链接文件

            s:套接字文件

            b:块设备文件

            c:字符设备文件

            p:管道文件

        根据文件大小来查找:

          -size  [+|-]#UNIT   (常用单位:k,M,G)

            #UNIT:大小范围为大于#-1,小于等于#

            -#UNIT:大小范围为大于等于0,小于等于#-1

            +#UNIT:大小范围为大于#

        根据时间戳来查找:

          以“天”为单位:

            -atime [+|-]#:

              #:范围为大于等于#天,小于#+1天

              +#:范围为大于等于#+1天

              -#:范围为大于等于0天,小于#天

            -mtime,-ctime同上

          以“分钟”为单位:

              -amin

              -mmin

              -cmin

        根据权限查找:

          -perm [/|-]MODE

             MODE:精确权限匹配

             /MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可

             -MODE:每一类对象逗必须同时拥有为其指定的权限标准             

        组合条件:

          与:-a

          或:-o

          非:-not,!

          ! A -a ! B 等于 !(A -o B)

          ! A -o ! B 等于 !(A -a B)

    处理动作:

      -print:默认的处理动作,显示至屏幕

      -ls:对查找到的文件执行ls -l命令

      -delete:删除查找到的文件

      -fls filename:查找到的所有文件的路径信息保存至指定文件中

      -ok COMMAND {} \; :对查找到的每个文件执行由COMMAND指定的命令,每个文件执行之前都会交互式要求用户确认

      -exec COMMAND {} \; :对查找到的每个文件执行由COMMAND指定的命令,无需用户确认

        {}:用于表示find查找到的文件

    注意:find传递参数至后面的指令时是一次性传递所以符合条件的参数,有些命令可能不能接受过多参数,命令可能会执行失败,可以用管道接xargs命令规避此问题。  

find命令详解