文件查找命令有locate ,find
locate具有非实时,非精确,快速的特点
find具有实时,精确,慢速的特点
 
locate
 -c 统计行
-n 显示前n行
如 locate -n 10 passwd 显示具有passwd的所有行的前10行
 
find :
-name 后跟要查找的名字
支持globbing方式的文件名通配
#find /etc -name "passwd*"
#find /etc -name "passwd?"
#find /etc -name "*passwd*"
 
-iname 不区分文件中字母的大小写
-regex pattern 支持正则表达式
-user 基于用户的查找
-uid 基于uid的查找
-group  属组的查找
-gid gid的查找
-nouser 没有属主的
-nogroup 没有属组的
-type 基于文件类型的查找( f 普通文件 d 目录 l软连接 b 块设备 s套接字文件p管道设备c字符)
-size 指定大小
-atime 指定访问时间 单位为天 可用+表示超过 -表示少于
-mtime 指定修改时间
-ctime 指定改变时间
-amin  -mmin  -cmin单位为分钟
-perm 具有的权限如755
755/755其中任何一个用户的权限 任何一类用户某一个权限位符合条件 
 -755 每一类用户有一个权限符合都符合条件 所有类别用户的所有权限位都符合条件
-print 将查找后的结果显示到屏幕上
-ls 将查找后的结果以长格式显示
-exec将查找后的结果还可以用命令进一步执行
 
例子
1、查找/var目录下属主为root并且属组为mail的所有文件;
find /var -user root -group mail
2、查找/usr目录下不属于root,bin,或student的文件;
find /usr -not -user root -a -not -user bin -a -not -user student
3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;
find /etc -mtime -7 -a -not -user root -a -not -user student
4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修改为root
find / \(-nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \
5 查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;
find /etc -size +1M >> /tmp/etc.largefiles
6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;
find /etc -not -perm /222 -ls