介绍
用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
用法
选项
选项 |
描述 |
-amin<分钟> |
查找在指定时间曾被存取过的文件或目录,单位以分钟计算; |
-anewer<参考文件或目录> |
查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录; |
-atime<24小时数> |
查找在指定时间曾被存取过的文件或目录,单位以24小时计算; |
-cmin<分钟> |
查找在指定时间之时被更改过的文件或目录; |
-cnewer<参考文件或目录> |
查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录; |
-ctime<24小时数> |
查找在指定时间之时被更改的文件或目录,单位以24小时计算; |
-daystart |
从本日开始计算时间; |
-depth |
从指定目录下最深层的子目录开始查找; |
-delete |
如果find查询成功,将执行删除 |
-expty |
寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录; |
-exec<执行指令> |
假设find指令的回传值为True,就执行该指令; |
-false |
将find指令的回传值皆设为False; |
-fls<列表文件> |
此参数的效果和指定-ls 参数类似,但会把结果保存为指定的列表文件; |
-follow |
排除符号连接; |
-fprint<列表文件> |
此参数的效果和指定-print 参数类似,但会把结果保存成指定的列表文件; |
-fprint0<列表文件> |
此参数的效果和指定-print0 参数类似,但会把结果保存成指定的列表文件; |
-fprintf<列表文件><输出格式> |
此参数的效果和指定-printf 参数类似,但会把结果保存成指定的列表文件; |
-fstype<文件系统类型> |
只寻找该文件系统类型下的文件或目录; |
-gid<群组识别码> |
查找符合指定之群组识别码的文件或目录; |
-group<群组名称> |
查找符合指定之群组名称的文件或目录; |
-help或--help |
在线帮助; |
-ilname<范本样式> |
此参数的效果和指定-lname 参数类似,但忽略字符大小写的差别; |
-iname<范本样式> |
此参数的效果和指定-name 参数类似,但忽略字符大小写的差别; |
-inum<inode编号> |
查找符合指定的inode编号的文件或目录; |
-ipath<范本样式> |
此参数的效果和指定-path 参数类似,但忽略字符大小写的差别; |
-iregex<范本样式> |
此参数的效果和指定-regexe 参数类似,但忽略字符大小写的差别; |
-links<连接数目> |
查找符合指定的硬连接数目的文件或目录; |
-iname<范本样式> |
指定字符串作为寻找符号连接的范本样式; |
-ls |
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出; |
-maxdepth<目录层级> |
设置最大目录层级; |
-mindepth<目录层级> |
设置最小目录层级; |
-mmin<分钟> |
查找在指定时间曾被更改过的文件或目录,单位以分钟计算; |
-mount |
此参数的效果和指定-xdev 相同; |
-mtime<24小时数> |
查找在指定时间曾被更改过的文件或目录,单位以24小时计算; |
-name<范本样式> |
指定字符串作为寻找文件或目录的范本样式; |
-newer<参考文件或目录> |
查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录; |
-nogroup |
找出不属于本地主机群组识别码的文件或目录; |
-noleaf |
不去考虑目录至少需拥有两个硬连接存在; |
-nouser |
找出不属于本地主机用户识别码的文件或目录; |
-ok<执行指令> |
此参数的效果和指定-exec 类似,但在执行指令之前会先询问用户,若回答y 或Y ,则放弃执行命令; |
-path<范本样式> |
指定字符串作为寻找目录的范本样式; |
-perm<权限数值> |
查找符合指定的权限数值的文件或目录; |
-print |
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有./ 字符串; |
-print0 |
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行; |
-printf<输出格式 |
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定; |
-prune |
不寻找字符串作为寻找文件或目录的范本样式; |
-regex<范本样式> |
指定字符串作为寻找文件或目录的范本样式; |
-size<文件大小> |
查找符合指定的文件大小的文件 b块(512字节) c字节 w字(2字节) k千字节 M兆字节 G 吉字节; |
-true |
将find指令的回传值皆设为True; |
-type<文件类型> |
只寻找符合指定的文件类型的文件 f普通文件 l符号连接 d目录 c字符设备 b块设备 s套接字 pFifo; |
-uid<用户识别码> |
查找符合指定的用户识别码的文件或目录; |
-used<日数> |
查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算; |
-user<拥有者名称> |
查找符和指定的拥有者名称的文件或目录; |
-version或--version |
显示版本信息; |
-xdev |
将范围局限在先行的文件系统中; |
-xtype<文件类型> |
此参数的效果和指定-type 参数类似,差别在于它针对符号连接检查。 |
参数
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| find /home -name "*.txt"
find . -name "*.txt" -o -name "*.pdf"
find /home ! -name "*.txt"
find /usr/ -path "*local*"
find . -regex ".*\(\.txt\|\.pdf\)$"
find . -maxdepth 3 -type f
find . -type f -atime -7
find . -type f -atime 7
find . -type f -atime +7
find . -type f -newer file.log
find . -type f -size +10k
find . -type f -size -10k
find . -type f -size 10k
find . -type f -name "*.txt" -delete
find $HOME/. -name "*.txt" -ok rm {} \
find . -type f -name "*.txt" ! -perm 644
find . -path "./aa" -prune -o -name "*.txt" -print
find ./ -name ini.txt -exec more {} \;
|