locate:

    非实时,模糊匹配,根据系统数据库完成查找。

    updatedb,手动生成文件数据库。

    优点是速度快

find:

    通过遍历指定目录中的所有文件完成查找

    支持众多的文件查找标准

    实时

    精确

    速度比较慢

    用法:

      find 查找路径 查找标准 查到后的处理动作

         -name filename 对文件名做精确匹配。

         -iname filename 对文件名匹配,不区分大小写。

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

         -user

         -group

         -nouser

         -nogroup

         -uid 

         -gid

         -type 根据文件类型f文件d目录c字符设备

         -size

            [+]#k(M.G):大于#kbyte的文件

          -atime amin

          -mtime

          -ctime

            [+]#

          -perm MODE

                 -perm 644  精确匹配

                 -perm /644  任何一位匹配就可以

                 -perm -644  每一位都必须匹配 文件权限包含此模式

          组合条件查找  -a -o -not

            find /tmp -not -type d  不是目录的文件

            find /tmp -nouser -a -type d 没有属主的目录文件

    动作:

       1、默认显示

       2、执行命令 -ok command {} \; 花括号为文件名称占位符 (每一次需用户确认)

               -exec command {} \;

           find /tmp -perm -006 -exec chmod o-w {} \;去掉其他用户的写权限

练习

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

  2、查找/usr目录下不属于root、bin或student的文件

  3、查找/etc目录下最近一周被修改过且不属于root用户的文件

  4、查找系统上没有属主和属组且一天内被访问过的文件,将属组和属主改成root

  5、查找/etc/目录下小于1m的文件,将其文件名写入/tmp/file

  6、查找/etc目录下所有用户都没有写权限的文件并显示详细信息