find命令
find – 在目录层次结构中搜索文件
它可以按照指定的条件来查找文件,并返回符合条件的文件列表;也可以对搜索的结果进行命令操作
基本语法:find [查找范围] [查找条件] [动作]
。
其中,查找范围
是要搜索的目录的路径,可以是绝对路径或相对路径。如果不指定路径,则默认为当前目录。
下面是一些常用的选项:
-name
:按照文件名匹配搜索,可以使用通配符。
-iname
:按文件名称查找,不区分大小写 case insensitive
查找/目录下所有文件名以 .txt 结尾的文件
find / -name *.txt
-type
:按照文件类型匹配搜索
f - 普通文件 file
d - 目录 directory
l - 链接文件 link
p - 管道文件
s - socket 文件
c - 字符设备文件
b - 块设备文件
查找/目录下所有的普通文件:
find / -type f
-size
:按照文件大小匹配搜索,可以使用+
或-
来指定大于或小于某个大小。
查找当前目录下所有大于1MB的文件
find . -size +1M
-user
:按文件属主查找
查找/目录下属主为root且文件名以 .txt 结尾的文件
find / -user root -a -name *.txt
-perm
:按文件权限查找
查找在/目录下权限是755的文件
find / -perm 755
-depth
:按照文件深度查找
查找 / 目录下最大深度为3的文件名以 .txt 结尾的文件
find / -maxdepth 3 -name *.txt
会将深度为1、2、3的文件都显示出来
-mtime
:按照文件修改时间匹配搜索,modify time。可以使用+
或-
来指定在某个时间之前或之后。-mmin
:以分钟为单位
在当前目录下搜索修改时间在7天前的文件,并删除它们
find . -mtime +7 -exec rm -rf {} \;
-exec
:对搜索到的文件执行指定的命令。
rm -rf – 命令和选项(删除命令)
{} – 代表find命令在前面查找到的文件
; – 代表find命令结
-o
:逻辑或,只要所给的条件中有一个满足,寻找条件就算满足 or
-not
:逻辑非,在命令中可用!
表示。该运算符表示查找不满足所给条件的文件
-a
:逻辑与,系统默认是与,可不加,表示只有当所给的条件都满足时,寻找条件才算满足 and