find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果应用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全副进行显示。在运行一个十分耗费资源的 find 命令时,很多人都偏向于把它放在后盾执行,因为遍历一个大的文件系统可能会破费很长的工夫。
命令格局
> find pathname -options [-print -exec -ok ...]
命令性能
用于在文件树种查找文件,并作出相应的解决
命令参数
- -amin< 分钟 >:查找在指定工夫曾被存取过的文件或目录,单位以分钟计算;
- -anewer< 参考文件或目录 >:查找其存取时间较指定文件或目录的存取时间更靠近当初的文件或目录;
- -atime<24 小时数 >:查找在指定工夫曾被存取过的文件或目录,单位以 24 小时计算;
- -cmin< 分钟 >:查找在指定工夫之时被更改过的文件或目录;
- -cnewer< 参考文件或目录 > 查找其更改工夫较指定文件或目录的更改工夫更靠近当初的文件或目录;
- -ctime<24 小时数 >:查找在指定工夫之时被更改的文件或目录,单位以 24 小时计算;
- -daystart:从本日开始计算工夫;
- -depth:从指定目录下最深层的子目录开始查找;
- -empty:寻找文件大小为 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< 文件大小 >:查找合乎指定的文件大小的文件;
- -true:将 find 指令的回传值皆设为 True;
- -type< 文件类型 >:只寻找合乎指定的文件类型的文件;
- -uid< 用户识别码 >:查找合乎指定的用户识别码的文件或目录;
- -used< 日数 >:查找文件或目录被更改之后在指定工夫曾被存取过的文件或目录,单位以日计算;
- -user< 拥有者名称 >:查找符和指定的拥有者名称的文件或目录;
- -version 或——version:显示版本信息;
- -xdev:将范畴局限在后行的文件系统中;
- -xtype< 文件类型 >:此参数的成果和指定“-type”参数相似,差异在于它针对符号连贯查看。
几个容易被搞混的参数
- -amin n 查找零碎中最初 n 分钟拜访的文件(如:cat)
- -atime n 查找零碎中最初
n*24
小时拜访的文件(如:cat) - -cmin n 查找零碎中最初 n 分钟被扭转文件状态的文件(如: 批改文件的权限)
- -ctime n 查找零碎中最初
n*24
小时被扭转文件状态的文件(如: 批改文件的权限) - -mmin n 查找零碎中最初 n 分钟被扭转文件数据的文件(如: 批改文件的内容)
- -mtime n 查找零碎中最初
n*24
小时被扭转文件数据的文件(如: 批改文件的内容)
n 有正负之分,n 示意文件更改工夫间隔为 n 天 (分钟),- n 示意文件更改工夫间隔在 n 天(分钟) 以内,+ n 示意文件更改工夫间隔在 n 天 (分钟) 以前。
以 mtime
为例子
- -mtime 0 示意文件批改工夫间隔以后为 0 天的文件,即间隔以后工夫不到 1 天(24 小时)以内的文件。
- -mtime 1 示意文件批改工夫间隔以后为 1 天的文件,即间隔以后工夫 1 天(24 小时-48 小时)的文件。
- -mtime +1 示意文件批改工夫为大于 1 天的文件,即间隔以后工夫 2 天(48 小时)之外的文件
- -mtime -1 示意文件批改工夫为小于 1 天的文件,即间隔以后工夫 1 天(24 小时)之内的文件
为什么
-mtime +1
示意文件批改工夫为大于 1 天的文件,即间隔以后工夫 48 小时之外的文件,而不是 24 小时之外的呢?
因为 n 值只能是整数,即比 1 大的最近的整数是 2, 所有-mtime +1
不是比以后工夫大于 1 天(24 小时),而是比以后工夫大于 2 天(48 小时)。
查找零碎中 24 小时以内被拜访过的文件
> find / -atime -1
查找零碎中 24 小时以内被批改过内容的文件
> find / -mtime -1
查找零碎中 48 小时之前被批改过内容的文件
> find / -mtime +1
查找零碎中所有的 .log
结尾的文件
> find / -name *.log
查找零碎中文件大于 100M 的文件
> find / -size +100M
- b —— 块(512 字节)
- c —— 字节
- w —— 字(2 字节)
- k —— 千字节
- M —— 兆字节
- G —— 吉字节
查找零碎中文件大于 100M 小于 500M 的文件
> find / -type f -size +100M -size -500M
查找零碎中文件大于 500M 的文件, 并删除
> find / -type f -size +500M -delete
或
> find / -type f -size +500M -exec rm -rf {} \;
或
> find / -type f -size +500M | xargs rm
查找零碎中权限为 777 的文件
> find / -perm 777
查找零碎中的空文件
> find / -empty -type f
原文链接:https://rumenz.com/rumenbiji/…
微信公众号: 入门小站