find命令格式与用法

find:

     实时查找工具,通过遍历指定路径下的文件系统完成文件查找;

     工作特点:

           查找速度略慢;

           精确查找;

           实时查找;

                  

常用参数:

 name  filename             #查找名为filename的文件-  perm                        #按执行权限来查找-user      username             #按文件属主来查找-group groupname     #按组来查找

 -mtime  -n +n             #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

 -atime  -n +n              #按文件访问时间来查GIN: 0px”>

 -ctime  -n +n             #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

 -nogroup                  #查无有效属组的文件,即文件的属组在/etc/groups中不存在
 -nouser                    #查无有效属主的文件,即文件的属主在/etc/passwd中不存
 -newer   f1 !f2              找文件,-n指n天以内,+n指n天以前 
 -ctime    -n +n            #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 
 -nogroup                  #查无有效属组的文件,即文件的属组在/etc/groups中不存在
 -nouser                    #查无有效属主的文件,即文件的属主在/etc/passwd中不存
 -newer   f1 !f2              #查更改时间比f1新但比f2旧的文件
 -type   b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
 -size  n[c]               #查长度为n块[或n字节]的文件
 -depth                      #使查找在进入子目录前先行查找完本目录
 -fstype                    #查更改时间比f1新但比f2旧的文件
 -type b/d/c/p/l/f             #查是块设备、目录、字符设备、管道、符号链接、普通文件
 -size n[c]               #查长度为n块[或n字节]的文件
 -depth                       #使查找在进入子目录前先行查找完本目录
 -fstype                  #查位于某一类型文件系统中的文件,这些文件系统类型通常可                        在/etc/fstab中找到
 -mount                       #查文件时不跨越文件系统mount点
 -follow                    #如果遇到符号链接文件,就跟踪链接所指的文件 %
 -cpio                   #查位于某一类型文件系统中的文件,这些文件系统类型通常可                            在/etc/fstab中找到
 -mount                      #查文件时不跨越文件系统mount点
 -follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
 -cpio                       #对匹配的文件使用cpio命令,将他们备份到磁带设备中
 -prune                      #忽略某个目录

find用法

         1.按名字查找   

     例:在/etc及其子目录中,查找host开头的文件

         find命令格式与用法

   2.根据属主、属组查找

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

   

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

          

         -uid UserID:查找属主为指定的UID号的文件


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

     例:查找属主是www的文件

      find命令格式与用法

         

   3.根据文件类型查找

             f: 普通文件

             d: 目录文件

             l: 符号链接文件

             s:套接字文件

             b: 块设备文件

             c: 字符设备文件

             p: 管道文件


   例:在当前目录及子目录下,查找符号链接文件 

             find命令格式与用法

   4.根据组合条件查找

          与:-a

          或:-o

          非:-not, !

                !A -a !B = !(A -o B)


                !A -o !B = !(A -a B) 

    例:找出/tmp目录下,属主不是root,且文件名不是fstab的文件

          find命令格式与用法 

   5.根据文件大小来查找

           -size [+|-]#UNIT

           常用单位:k, M, G

            #UNIT: (#-1, #]

           -#UNIT[0,#-1]

           +#UNIT(#,oo)

                      例:查找超过1M的文件

       find命令格式与用法 

      


   6.根据时间戳

         以“天”为单位;

         -atime [+|-]#,  

           #: [#,#+1)

           +#: [#+1,oo]

           -#: [0,#)

           -mtime

           -ctime

   例:查找2天前被更改过的文件 

         find命令格式与用法 

 

        以“分钟”为单位:

                 -amin

                 -mmin

                 -cmin

   例:查找10分钟以前状态被改变的文件

           find命令格式与用法

   7.根据权限查找

             -perm [/|-]MODE

            MODE: 精确权限匹配

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

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

   例:在当前目录及子目录中,查找属主具有读写执行,其他具有读执行权限的文件

                find命令格式与用法 

 

   8.处理动作

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

            -ls:类似于对查找到的文件执行“ls -l”命令;

            -delete:删除查找到的文件;

            -fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件中;

            -ok COMMAND {} /; 对查找到的每个文件执行由COMMAND指定的命令;

               对于每个文件执行命令之前,都会交互式要求用户确认;

            -exec COMMAND {} /; 对查找到的每个文件执行由COMMAND指定的命令

               {}: 用于引用查找到的文件名称自身;

 

       注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令;

            有些命令不能接受过多参数,此时命令执行可能会失败;另一种方式可规避此问题:

                         find | xargs COMMAND 

练习:

1、查找/var目录下属主为root,且属组为mail的所有文件或目录;

# find /var -user root -group mail

 

2、查找/usr目录下不属于rootbinhadoop的所有文件或目录;

# find /usr -not -user root -a -not -user bin -a -not -user hadoop

# find /usr -not /( -user root -o -user bin -o -user hadoop /)

 

3、查找/etc目录下最周一周内其内容修改过,同时属主不为root,也不是hadoop的文件或目录;

# find /etc -mtime -7 -a -not -user root -a -not -user hadoop

# find /etc/ -mtime -7 -a -not /( -user root -o -user hadoop /)

 

4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录;

# find / -nouser -a -nogroup -a -atime -7

 

5、查找/etc目录下大于1M且类型为普通文件的所有文件;

# find /etc -size +1M -type f

 

6、查找/etc目录下所有用户都没有写权限的文件;

# find /etc -not -perm /222

 

7、查找/etc目录下至少有一类用户没有执行权限的文件;

# find /etc -not -perm -111

 

8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件;

# find /etc/init.d -perm -113

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/186639.html

(0)
上一篇 2021年11月4日
下一篇 2021年11月4日

相关推荐

发表回复

登录后才能评论