Linux文件搜索命令 - 简书

字数 286阅读 32

1、locate 文件名(只能搜索文件)
特点:在后台数据按文件名搜索,速度快,耗费资源少
搜索的后台数据库:/var/lib/mlocate
更新数据库:updatedb
注意:a、刚开始新建的文件,用locate不能马上搜索到,需要等待一段时间才能搜到,因为/var/lib/mlocate数据库还没更新,可使用updatedb强制更新数据库
b、可以使用locate locate查看locate数据库目录
赢百万彩票注册 c、匹配规则 /etc/updatedb.conf配置文件

2、whereis 命令名(搜索命令所在路径及帮助文档位置)
选项:
-b 只查找可执行文件
-m 只查找帮助文件
例子:
whereis ls
whereis -b ls
whereis -m ls
拓展:
whoami
whatis ls

3、which 文件名(搜索命令所在路径及别名)
拓展:
echo $PATH(打印系统环境变量)

4、find [搜索范围] [搜索条件](文件搜索命令)
特点:功能多,但耗资源,应避免大范围搜索;使用通配符,则完全匹配
通配符:

* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符

例子:

1、按照文件名搜索
find / -name install.log(在整个根目录下,按文件名搜索)
find /root -name "install.log*" (在root下,搜install.log匹配的任意文件)
find /root -name "test[ab]" (搜索test后面紧接一个a或紧接一个b)
find /root -name "*[ab]" (搜索以a结尾或者以b结尾的文件)
find /root -iname install.log (加-i,文件名不区分大小写)

2、按照所有者搜索
find /root -user root (按照所有者搜索)
find /root -nouser(搜索没有所有者的文件,内核产生或者外来数据等)

3、按照时间搜索
find /var/log/ -mtime +10(搜索10天前修改的文件)
atime 文件访问时间
ctime 改变文件属性时间
mtime 修改文件内容时间
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件

4、按照文件大小搜索
find . -size 50k(搜文件大小50kb文件,点代表当前目录,k小写,M大写)
-50k 小于50kb
50k 等于50kb
+50k 大于50kb

find /etc -size +20k -a -size -50k(搜索/etc/下,大于20kb并且小于50kb的文件)
-a and 并且
-o or 或者

find /etc -size +20k -a -size -50k -exec ls -lh {} \;
(搜索/etc/下,大于20kb并且小于50kb的文件,并且显示详细信息)
其中-exec/-ok 命令 {} \; 对搜索结果执行操作,-exec和 {} \;中间加命令

5、按照i节点
find . -inum 262422

查找i节点是262422的文件