使用方法:
find path -option [-print ] [ -exec -ok command ] {} \;
根据文件名查找
find / -name filename 再根目录里面搜索文件名为filename的文件 find /home -name "*.txt" find /home -iname "*.txt" # 忽略大小写
根据文件类型查找
find . -type 类型参数
f 普通文件 l 符号连接 d 目录 c 字符设备 b 块设备 s 套接字 p Fifo
根据目录深度查找
find . -maxdepth 3 -type f # 最大深度为3 find . -mindepth 2 -type f # 最小深度为2
根据文件的权限或者大小名字类型进行查找
find . -type f -size (+|-)文件大小 # +表示大于 -表示小于
b —— 块(512字节) c —— 字节 w —— 字(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节
按照时间查找
-atime(+|-)n # 此选项代表查找出n天以前被读取过的文件。 -mtime(+|-)n # 此选项代表查找出n天以前文件内容发生改变的文件。 -ctime(+|-)n # 此选项代表查找出n天以前的文件的属性发生改变的文件。 -newer file # 此选项代表查找出所有比file新的文件。 -newer file1 ! –newer file2 # 此选项代表查找比file1文件时间新但是没有file2时间新的文件。 # 注意: # n为数字,如果前面没有+或者-号,代表的是查找出n天以前的,但是只是一天之内的范围内发生变化的文件。 # 如果n前面有+号,则代表查找距离n天之前的发生变化的文件。如果是减号,则代表查找距离n天之内的所有发生变化的文件。 # -newer file1 ! –newer file2中的!是逻辑非运算符
按照用户/权限查找
-user 用户名:根据文件的属主名查找文件。 -group 组名:根据文件的属组名查找文件。 -uid n:根据文件属主的UID进行查找文件。 -gid n:根据文件属组的GID进行查找文件。 -nouser:查询文件属主在/etc/passwd文件中不存在的文件。 -nogroup:查询文件属组在/etc/group文件中不存在的文件 -perm 777: 查询权限为777的文件
查找时指定多个条件
-o:逻辑或,两个条件只要满足一个即可。 -a:逻辑与,两个条件必须同时满足。
find /etc -size +2M -a -size -10M
## 对查找结果进行处理
-exec shell命令 {} \;
-ok shell命令 {} \;
其中-exec就是代表要执行shell命令,后面加的是shell指令,再后面的“{}”表示的是要对前面查询到的结果进行查询,最后的“\;”表示命令结束。需要注意的是“{}”和“\”之间是要有空格的。而-ok选项与-exec的唯一区别就是它在执行shell命令的时候会事先进行询问,-print选项是将结果显示在标准输入上
find /home -name “*.txt” -ok ls -l {} \;
find /home -name “*.txt” -ok rm {} \;
时间: 2024-11-08 16:57:48