Linux---find文件查找命令

Linux下文件查找命令有两个---locatefind

一、locate 命令

       只对其生成的数据库经行遍历(生成数据库的命令updatedb),速度快但是locate只能对

       文件进行模糊匹配,精度不高,非实时的

       -i //查找文件的时候不区分大小写实例:locate -Ipasswd

   -n://只显示查找结果的前n行   实例:locate -n 5 passwd

   查询之前需要执行   updatedb命令

二、find命令

         实时、精确、支持众多查找标准、遍历指定目录中的所有文件完成查找,速度慢

        1、使用格式:find [指定查找目录][查找规则][查找完后执行的action]

      查找路径:默认当前路径   查找标准:默认指定路径下的所有文件   处理动作:默认为显示

       例如:find /etc/tmp/root -name passwd

       根据文件名查找

               # -name //根据文件名查找(精确查找

               #-iname //根据文件名查找,但是不区分大小写

               #-regex PATTERN 基于正则表达式进行文件名匹配

       2、文件名通配

              *表示  通配的任何意义的字符

                     find /etc -name "*passwd*"

              ?表示通配任意的单个字符

                     find/etc -name "passwd?"

              []通配中刮号里面的任意一个字符      

         find /etc/ -name "[ab].sh"

      3、使用文件所属用户和组查找文件(uid gid

             # -user //根据属主来查找文件

                 find /tmp -uid 0

      # -group //根据属组查找文件

                 find /tmp  -gid o

        4-a and -o and-not的使用

              -a :连接两个不同条件(两个条件必须同时满足)

              -o :连接两个不同的条件(两个条件满足其中之一即可)

              -not :对条件取反

               find /etc/ -name "-*.sh"-a-user root   

       find /etc/-not -user root

       find ./-not -user user1-o -not -type d

       find ./ -not \( -useruser1 -a -type d \)\

   5、根据时间戳的相关属性来查找文件

            stat命令查看一个文件的时间信息

             stat /etc/ passwd

      atime :最近一次访问时间

      mtime :最近一次内容修改时间

      ctime :最近一次属性修改时间

            实例:

            find /tmp -atime +5  //表示查找在5天内没有访问过的文件

            find /tmp -atime -5 //访问在5天内访问过的文件

            其他同理

     

   6、根据文件类型来查找文件

           -tpye

      f:    //普通文件

              d   //目录文件

              l  //链接文件

              b  //块设备文件

              c  //字符设备文件

              p  //管道文件

              s   //socket文件

       find /tmp-type s

    7、根据大小来查找文件

              -size  [+|-]

      find /tmp -size 2M  //查找在/tmp目录下等于2M的文件

      find /tmp -size +2M  //查找在/tmp目录下大于2M的文件

      find /tmp -size -2M  //查找在/tmp目录下小于2M的文件

 

    8、根据文件权限查找(-perm)

            -perm MODE 精确查找

                       /MODE :任意一位匹配即满足条件

                        -MODE:文件权限能完全包含此MODE时才符合条件

                        -644

             find ./ -per1 -001

      find /tmp -perm  755    //查找在/tmp目录下权限是755的文件

      find /tmp -perm +222    //表示只要有一类用户(属主/属组/其他)的匹配写权限就行

      find /tmp -perm -222    //表示必须所有类别用户都满足有写权限

 

    9、-nouser and -nogroup

      find / -nogrop -a -nouser //在整个系统中查找即没有属主又没有属组的文件(这样的文件

                                                                         通常很危险,应该及时清除,否则后患无穷)

    10、[查找执行的action]
       -print            //默认情况下的动作

       -ls                //查找后用ls 显示出来

       -ok  [commend]    //查找后执行命令的时候询问用户是否要执行

       -exec [commend]     //查找后执行命令的时候不询问用户,直接执行

                 find /tmp -name "*.sh" -exec chmod u+x {}\;     {} 替代查找到的文件

                 find /tmp -atime +30 -exec rm -rf{} \;

   

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章