find命令可以在一个目录(及子目录)中搜索文件,也可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。
用法:find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
find命令的常用选项
-print:find命令将匹配的文件输出到标准输出
-exec:find命令对匹配的文件执行该参数所给出的shell命令,相应命令的形式为‘command’{} \,注意{}和\;之间的空格
-ok:和-exec作用相同,不过会以一种更安全的方式执行参数给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
示例:
#查找当前目录下所有gz文件并且执行ls命令
#find -name "*.gz" -exec ls {} \;
#查找当前目录下所有的gz文件并且执行rm命令,在删除的时候进行询问
#find -name "*.gz" -ok rm -rf {} \;
1、查找当前目录下
find -name "*.gz"
2、从根目录下开始查找
find / -name "*.gz"
3、只查找当前目录下的一级目录中包含的,不包括二级目录下包含的文件
find . -name "*.gz" -maxdepth 1
4、find . -name "*.gz" -maxdepth 1 -print
显示效果同上
5、find . -name "*.gz" -exec ls -l {} \;
找到文件后缀为.gz的文件并用ls -l的命令展示出来
6、找出所有修改时间在当前文件之后的所有文件
find -newer win-utf
7、3天之内的文件
find -ctime -3
8、3天之前的文件
find -ctime +3
9、根据权限查找
find -perm 644 -maxdepth 1
10、查找文件
find -type -f
11、查找链接
find -type l
12、查找目录
find -type d
13、文件大小
find -size +512
14、用户
find -user root
15、组
find -group root
16、查找空文件或目录
find -empty
17、查找更新时间在某两个文件之间的所有文件
find . cnewer redis-4.0.11 -a -not -cnewer zookeeper.out
查找更新时间在redis-4.0.11 之后并且在zookeeper.out更新时间之前的所有文件
18、查找1天以前3天以内的所有文件
find . -mtime +1 -and -mtime -3