find:
语法:find 【路径】【参数】【表达式】
说明:从指定路径下递归向下搜索文件,在不指定查找目录的情况下是对整个系统遍历查找。
支持按照各种条件方式搜索,功能强大。
支持对搜素得到的文件进一步用命令操作。
常用参数如下:
根据文件属性查找
-user:根据文件拥有者寻找文件
-group:根据文件所属组寻找文件
-name:根据文件名寻找文件;-iname:不区分大小写
-uid:根据uid查找文件
-gid:根据gid查找文件 eg: find /tmp -gid 1000 查找gid是1000的文件
-perm:根据文件权限寻找文件
+:满足其中的一位就可匹配 -:只指定权限为1的位,其他位不作要求.
eg:
find / -perm 755 查找根目录下权限是755的文件
find / -perm +222 表示只要有一类用户(属主,属组,其他)匹配写权限就行.
find / -perm +6 只要 其他 中的读或写权限为1. eg:— — 100、— — 010、— —110.
find / -perm -222 表示必须所有类别用户都满足有写权限,第二位必须为1.
-size:根据文件大小寻找文件
eg:
find /tmp -size 2M 查找在/tmp目录下等于2M的文件
find /tmp -size +2M 查找在/tmp目录下大于2M的文件
find /tmp -size -2M 查找在/tmp目录下小于2M的文件
-type x:根据文件类型寻找文件 。
x参数对应:b–块设备文件,c–字符设备文件,d–目录文件,l–符号链接文件,p–命名管道,f–普通文件,s–socket文件
根据时间查找(可以使用stat命令来查看文件的时间信息):
-amin n 查找n分钟以前被访问过的所有文件
-atime n 查找n天以前被访问过的所有文件
-cmin n 查找n分钟以前文件状态被修改过的所有文件
-ctime n 查找n天以前文件状态被修改过的所有文件
-mmin n 查找n分钟以前文件内容被修改过的所有文件。
-mtime n 查找n天以前文件内容被修改过的所有文件。
eg:
find /tmp –atime +5 //表示查找在五天内没有访问过的文件
find /tmp -atime -5 //表示查找在五天内访问过的文件
表达式通配符:
find的表达式使用通配符时需使用“”。
*:表示通配任意的字符。
?:表示通配任意的单个字符。
[]:表示通配括号里的任意一个字符。
-a,-o,-not的使用:
-a:连接两个不同的条件(两个条件同时满足)。
-o:连接两个不同的条件(两个条件满足其一)。
-not:满足对条件取反的条件
操作找到的文件:
语法:find 【路径】【参数】【表达式】-exec 命令 {} \;
说明:直接对符合条件的文件执行所给的命令,不询问用户是否需要执行。
{}表示命令的参数即为find找到的文件。
\禁止转义
;表示本行命令结束。
语法:find 【路径】【参数】【表达式】-ok 命令 {} \;
说明:会询问用户是否需要执行该命令。
-ls:列出所找到的所有文件
-fprintf 文件名:将找到的文件名写入指定文件
-printf:在标准输出设备上显示查找到的文件名(默认情况下的操作)
Find Files in Linux with Find Command Examples
Find File By Name in Linux
20 Advanced Linux Find Command Examples
3 Ways to find the largest files in Linux
How to use Find Command in Linux
Understanding Maxdepth Mindepth Depth In Linux Find Command
10 Linux Find Exec examples – Advanced Part