三、find [dir1 …] [criteria… 组] [action...]
可以针对找到的文件执行命令
只能搜索用户具有读取和执行权限的目录
1.实时搜索,不用基于数据库
速度较慢,但比locate更准确
如果未给定任何起始目录,则会使用CWD
如果未给定任何条件,则所有文件均匹配。如:
[root@desktop23 ~]# find /
[root@desktop23 ~]# find .
2.基本示例
[root@desktop23 ~]# find -name snow.png
在当前目录中搜索名为 snow.png 的文件
[root@desktop23 ~]# find -iname snow.png
在当前目录中搜索(不区分大小写)名为:
snow.png、Snow.png、SNOW.PNG等文件
[root@desktop23 ~]# find / -name ‘*.txt’
在系统的任意位置搜索以.txt结尾的文件
通配符应当始终加引号,以避免出现异常结果
[root@desktop23 ~]# find /etc -name ‘*pass*’
在 /etc/ 中搜索在其名称中包含 pass 的文件
[root@desktop23 ~]# find /home -user joe -group joe
在 /home/ 中搜索由用户 joe 和组 joe 所有的文件。
默认情况下,都是逻辑and关系,2者都必须符合。
3.也可以用 OR 连接或者用 -o 或 -not 求反
也可以使用括号来确定逻辑顺序,但在 bash中必须忽略
[root@desktop23 ~]# find -user joe -not -group joe
[root@desktop23 ~]# find -user joe -o -user jane 或者关系
[root@desktop23 ~]# find -not \( -user joe -o -user jane \)
拥有人不是joe或者不是jane
4.可以按文件拥有人名称或 ID 搜索
[root@desktop23 ~]# find / -user student -o -uid 500
5.可以按文件的权限搜索
[root@desktop23 ~]# find -perm 755
[root@desktop23 ~]# find -perm +222
如果任意一个人可以写入,则匹配
[root@desktop23 ~]# find -perm -222
如果每个人都可以写入,则匹配
[root@desktop23 ~]# find -perm -002
如果其他人可以写入,则匹配
6.find和数字条件
[root@desktop23 ~]# find -size 10M 大小等于10MB的文件
[root@desktop23 ~]# find -size +10M 大小超过10MB的文件
[root@desktop23 ~]# find -size -10M 大小不足10MB的文件
还可以使用其他修饰符,例如K代表KB,G代表GB等