-mtime选项,按文件更改时间查找文件
例12:查找2天内修改过的文件
find ./ -type f -mtime -2 -exec ls -l {} \;
如图,搜索结果为2天内修改过的文件。
如果要查找2天前修改过的文件,那么命令如下:
find ./ -type f -mtime +2 -exec ls -l {} \;
还可以使用多个-mtime,达成对一个时间段查询的目的。
find ./ -type f -mtime +2 -mtime -5
上面的语句实现对2-5天内修改过的文件进行搜索。
-atime选项,按文件访问时间来查找文件
例13:三天内访问过的文件
find ./ -type f -atime -3 -exec ls -l {} \;
如图,列出3天内访问过的文件
-ctime选项,按文件创建之间来查找文件
例14:两日内创建的文件
find ./ -type f -ctime -2 -exec ls -l {} \;
如图,列出2日内创建的文件。
-newer选项,查找比指定文件更新时间更新的文件
例15:查找比c2.txt文件更新时间更新的文件
如图,搜索结果文件比c2.txt新
类似的选项还有-anewer选项和-cnewer选项
-size选项,按文件大小来查找文件
例16:查找20M以上的文件
find ./ -size +20M -exec ls -lh {} \;
如图,搜索结果文件都是20M以上大小。
常用单位有:k,M,G,b(block),c(byte),w(two-byte words)
“o”操作符,或操作,可以让两个条件以或地方式查找
例17:查找文件名字时a开头的文件或者文件名字时b开头的文件
find ./ -type f -name "a*" -o -name "b*"
-prune选项,不在当前指定目录查找
例18:对比使用prune选项和不使用的效果
sudo find / -path /etc -prune -o -name passwd -print
sudo find / -name passwd -print
如图,第一条命令跳过了指定目录/etc没有进行搜索
-exec选项,对查找结果执行命令
例19:查找文件名字时a开头的文件或者文件名字时b开头的文件,并且使用ls命令显示文件详细信息
find ./ -type f -name "b*" -o -name "a*" -exec ls -l {} \;
-maxdepth选项,搜索制定目录深度
例20:搜索1层和2层目录下的后缀为“gz”的文件
find ./ -maxdepth 1 -name "*.gz" -exec ls -l {} \;
find ./ -maxdepth 2 -name "*.gz" -exec ls -l {} \;
如图,搜索2层目录结果更多。
这个选项不能跟-type选项一起用。
-mindepth选项,至少到达指定目录深度后再开始查找
例21:从第3层开始查找txt后缀文件
find ./ -mindepth 3 -name "*.txt" -exec ls -l {} \;
如图,第二层目录下的c4.txt不在搜索结果内。
-OLEVEL选项,设置find优化级别,默认1。可选值:0,1,2,3
0等同默认值
1默认值,表达式被重新排序,以便测试仅基于文件名首先执行。
2,任何“-type”或“-xtype”测试都是在基于仅在文件名上,但在任何需要来自inode的信息
3,在此优化级别,完全基于成本的查询优化程序是启用
-executable选项,查找有执行权限的文件。功能跟-perm选项类似。
例22:查找有执行权限的后缀为“sh”的文件
find ./ -executable -name "*.sh" -exec ls -l {} \;
如图,搜索结果的文件都有执行权限。
类似的选项还有-readable选项和-writable选项
-used选项,上次访问文件是在上次更改其状态后n天。
例23: 上次访问文件是在上次更改其状态后2天内
find -used -2
-uid选项,跟-user选项类似,但是使用帐户的uid作为参数
-printf选项,格式化输出结果。