Linux文件查找之find命令
一、语法格式
find [路径] [选项] [操作]
二、选项
-name 根据文件名查找 find ./etc -name *.conf
-iname(-i忽略文件名大小写)ignore
-perm 根据文件权限查找 find ./ -perm 777
-prune 可以排除某些查找目录
-user 根据文件属主查找
-group 根据文件属组查找
-mtime 根据文件更改时间查找
-n n天以内修改的文件
+n n天以外修改的文件
-mmin
-n n分钟以内修改的文件
+n n分钟以外修改的文件
-nogroup 查找无有效属组的文件
-nouser 查找无有效属主的文件
-newer file1 查找更改时间比file1新文件
-type 按文件类型查找
f 文件 find ./ -type f
d 目录 find ./ -type d
c 字符设备文件
b 块设备文件
l 链接文件
p 管道文件
-size 按文件大小查找
-n 大小小于于n的文件 find ./ -size +1M
+n 大小大于n的文件 find ./ -size -100k
-mindepth n 从n级目录开始搜索
-maxdepth n 最多搜索到n级子目录
三、操作
-print 打印输出(默认)
-exec 对搜索到的文件执行特定的操作,格式为-exec 'command' {} \;
-ok 和exec功能一样,只是每次操作都会给用户提示
#将/var/log/目录下以log结尾的文件,且更改时间在7天以上的删除
find /var/log/ -name '*.log' -mtime +7 -exec rm -rf {} \;
逻辑运算符
-a 与
-o 或
-not 非
! 非
find . -mtime N
N * 24
+1 表示 1 * 24 +24小时以外..
+0 表示 0 * 24 +24小时以外
1 表示 1*24 + 24 到 24 之间..
0 表示 0*24 + 24 到 0 之间..
-1 表示 0*24 +24 内,甚至为未来时间...
四、find、locate、whereis和which总结级适用场景分析
(1)find 在整块磁盘中搜索,默认全部匹配
(2)locate 在数据库文件中查找,默认部分匹配(所属软件包mlocate---yum -y install mlocate)
updatedb命令
用户更新/var/lib/mlocate/mlocate.db
所使用配置文件/etc/updatedb.conf
该命令在后台cron计划任务中定期执行
(3)whereis 查找某个命令的二进制程序文件、帮助文档、源代码文件
-b 只返回二进制文件
-m 只返回帮助文档文件
-s 只返回源代码文件
(4)which仅查找二进制程序文件
-b 只返回二进制文件
各命令使用场景
find 查找某一类文件,比如文件名部分一致;功能强大,速度慢
locate 只能查找单个文件;功能单一,速度快
whereis 查找程序的可执行文件、帮助文档等;不常用
which 只查找程序的可执行文件;常用于查找程序的绝对路径