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](https://www.howtouselinux.com/post/find-files-in-linux-with-find-command-examples)
[Find File By Name in Linux](https://www.howtouselinux.com/post/find-file-by-name-in-linux)
[20 Advanced Linux Find Command Examples](https://www.howtouselinux.com/post/linux-find)
[3 Ways to find the largest files in Linux](https://www.howtouselinux.com/post/find-largest-files-and-directories-in-linux)
[How to use Find Command in Linux](https://www.howtouselinux.com/post/advanced-find-exec-xargs-examples)
[Understanding Maxdepth Mindepth Depth In Linux Find Command](https://www.howtouselinux.com/post/linux-find-depth-maxdepth-mindepth)
[10 Linux Find Exec examples - Advanced Part](https://www.howtouselinux.com/post/linux-find-exec-examples-advanced-part)