find
功能说明:查找文件或目录。
语 法:find [目录...][-amin <分钟>][-anewer <参考文件或目录>][-atime <24 小时
数 >][-cmin < 分 钟 >][-cnewer < 参考文件或目录 >][-ctime <24 小时数
>][-daystart][-depyh][-empty][-exec < 执行指令 >][-false][-fls < 列表文件
>][-follow][-fprint <列表文件>][-fprint0 <列表文件>][-fprintf <列表文件><输出格式
>][-fstype <文件系统类型>][-gid <群组识别码>][-group <群组名称>][-help][-ilname <
范本样式>][-iname <范本样式>][-inum <inode 编号>][-ipath <范本样式>][-iregex <范
本样式 >][-links < 连接数目 >][-lname < 范本样式 >][-ls][-maxdepth < 目录层级
>][-mindepth <目录层级>][-mmin <分钟>][-mount]
[-mtime <24 小时数 >][-name < 范本样式 >][-newer < 参考文件或目录
>][-nogroup][noleaf] [-nouser][-ok <执行指令>][-path <范本样式>][-perm <权限数值
>][-print][-print0][-printf <输出格式>][-prune][-regex <范本样式>][-size <文件大小
>][-true][-type <文件类型>][-uid <用户识别码>][-used <日数>][-user <拥有者名称
87>][-version][-xdev][-xtype <文件类型>]
补充说明:find 指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲
查找的目录。
参 数:
-amin<分钟> 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
-anewer<参考文件或目录> 查找其存取时间较指定文件或目录的存取时间更接近现在
的文件或目录。
-atime<24 小时数> 查找在指定时间曾被存取过的文件或目录,单位以 24 小时计算。
-cmin<分钟> 查找在指定时间之时被更改的文件或目录。
-cnewer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在
的文件或目录。
-ctime<24 小时数> 查找在指定时间之时被更改的文件或目录,单位以 24 小时计算。
-daystart 从本日开始计算时间。
-depth 从指定目录下最深层的子目录开始查找。
-expty 寻找文件大小为 0 Byte 的文件,或目录下没有任何子目录或文件的空目录。
-exec<执行指令> 假设 find 指令的回传值为 True,就执行该指令。
-false 将 find 指令的回传值皆设为 False。
-fls<列表文件> 此参数的效果和指定"-ls"参数类似,但会把结果保存为指定的列表文
件。
-follow 排除符号连接。
-fprint<列表文件> 此参数的效果和指定"-print"参数类似,但会把结果保存成指定的列
表文件。
-fprint0<列表文件> 此参数的效果和指定"-print0"参数类似,但会把结果保存成指定
的列表文件。
-fprintf<列表文件><输出格式> 此参数的效果和指定"-printf"参数类似,但会把结果保
存成指定的列表文件。
-fstype<文件系统类型> 只寻找该文件系统类型下的文件或目录。
-gid<群组识别码> 查找符合指定之群组识别码的文件或目录。
-group<群组名称> 查找符合指定之群组名称的文件或目录。
-help 或--help 在线帮助。
88-ilname<范本样式> 此参数的效果和指定"-lname"参数类似,但忽略字符大小写的差
别。
-iname<范本样式> 此参数的效果和指定"-name"参数类似,但忽略字符大小写的差
别。
-inum<inode 编号> 查找符合指定的 inode 编号的文件或目录。
-ipath<范本样式> 此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。
-iregex<范本样式> 此参数的效果和指定"-regexe"参数类似,但忽略字符大小写的差
别。
-links<连接数目> 查找符合指定的硬连接数目的文件或目录。
-iname<范本样式> 指定字符串作为寻找符号连接的范本样式。
-ls 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。
-maxdepth<目录层级> 设置最大目录层级。
-mindepth<目录层级> 设置最小目录层级。
-mmin<分钟> 查找在指定时间曾被更改过的文件或目录,单位以分钟计算。
-mount 此参数的效果和指定"-xdev"相同。
-mtime<24 小时数> 查找在指定时间曾被更改过的文件或目录,单位以 24 小时计算。
-name<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-newer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在
的文件或目录。
-nogroup 找出不属于本地主机群组识别码的文件或目录。
-noleaf 不去考虑目录至少需拥有两个硬连接存在。
-nouser 找出不属于本地主机用户识别码的文件或目录。
-ok<执行指令> 此参数的效果和指定"-exec"参数类似,但在执行指令之前会先询问用
户,若回答"y"或"Y",则放弃执行指令。
-path<范本样式> 指定字符串作为寻找目录的范本样式。
-perm<权限数值> 查找符合指定的权限数值的文件或目录。
-print 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式为
每列一个名称,每个名称之前皆有"./"字符串。
-print0 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式
为全部的名称皆在同一行。
89-printf<输出格式> 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准
输出。格式可以自行指定。
-prune 不寻找字符串作为寻找文件或目录的范本样式。
-regex<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-size<文件大小> 查找符合指定的文件大小的文件。
-true 将 find 指令的回传值皆设为 True。
-typ<文件类型> 只寻找符合指定的文件类型的文件。
-uid<用户识别码> 查找符合指定的用户识别码的文件或目录。
-used<日数> 查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以
日计算。
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。
-version 或--version 显示版本信息。
-xdev 将范围局限在先行的文件系统中。
-xtype<文件类型> 此参数的效果和指定"-type"参数类似,差别在于它针对符号连接检
查。
常用选项:
格式:find [目录] [条件1]
-type 类型(f文本文件、d目录、l快捷方式)
- ]# find /opt -type d
- ]# find /etc -type l
- ]# find /boot -type f
-name "文档名称" (-iname 忽略大小写) 可使用通配符
- ]# find /etc -name "passwd"
- ]# find /etc -name "*tab"
- ]# find /etc -name "*.conf"
- ]# find /root -name ".*" #查找隐藏数据
-size +或- 文件大小(k、M、G) +的意思是多少以上,-的意思是多少以下。
]# find /boot -size +10M -size -50M
-user 用户名 (按照数据的所有者)
- ]# useradd natasha #创建用户
- ]# find /home -user natasha
- ]# find / -user natasha
-mtime 修改时间 (所有的时间都是过去时间)
-mtime +90 #90天之前的数据
-mtime -90 #最近90天之内的数据
]# find /var -mtime +90
联合查询
- ]# find /mnt/ -name "cbd*" -type d
- ]# find /mnt/ -name "cbd*" -type f
- ]# find /mnt/ -name "cbd*" -o -type f #两个满足其中一个
当两个查询条件时,默认是与查询,可以省略,而或查询则需要添加-o选项
find高级使用
处理find找到的数据,每查找的一个就传递一次
格式:find [范围] [条件] -exec 处理命令 {} \;
-exec额外操作的开始
{} 永远表示前面find查找的结果
\; 额外操作的结束
]# find /boot -size +10M -exec cp {} /mnt \;
]# find /boot -size +10M -exec ls -lh {} \;