Find命令

  • Post author:
  • Post category:其他


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