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目录下所有用户都没有写权限的文件并显示详细信息