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 只查找程序的可执行文件;常用于查找程序的绝对路径

原文地址:https://www.cnblogs.com/xiaoxianxianxian/p/12728255.html