linux 的文件查找
locate 使用数据库查找 速度快 模糊匹配
find 实时查找 精确匹配 速度慢
find [查找位置] [查找标准] [处理动作]
查找位置 默认当前位置
查找标准 默认当前目录下所有文件
处理动作 显示到标准输出
查找标准
-name 根据文件名查找
-iname 忽略大小写
-user username 根据用户名查找
-group groupname 根据用户组名查找
-uid UID
-gid GID
-nouser
-nogroup
-type
f 普通文件
d 目录文件
b 块设备
c 字符设备
l 链接文件
-size 12M 11-12之间的文件大小 M 大写
12k k小写
+ 大于
- 小于
与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名;
-mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。
-newer file :file 为一个存在的文件,列出比 file 还要新的文件档名
+4代表大於等於5天前的档名:ex> find /var -mtime +4
-4代表小於等於4天内的文件档名:ex> find /var -mtime -4
4则是代表4-5那一天的文件档名:ex> find /var -mtime 4
-amin
-mmin
-cmin
-perm [+|-] mode
没有+-表示精确权限匹配
+ 任何一类用户的任何一位权限匹配即可
- 每类用户的每位权限都匹配
处理动作
-print: 显示
-ls
-exec command {} \;
2、查找/usr目录下不属于root,bin,或student的文件;
find /usr -not \( -user root -o -user bin -o -user 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
find /etc -mtime -7 -a -not \( -user root -o -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 -exec echo {} >> /tmp/etc.largefiles \;
find /etc -size +1M >> /tmp/etc.largefiles
6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;
find /etc -not -perm +222
原文:http://168322.blog.51cto.com/158322/1411243