搜索
查看: 782|回复: 0

Linux下比find快N倍的文件查找命令

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2017-1-2 21:42:18 | 显示全部楼层 |阅读模式

使用linux操作系统的人,一般都用过文件查找命令find,在文件数量非常庞大的时候,比如在高通的android工程项目中,目录大小有十几个G,文件数量非常多,用find命令就太慢了。

下面介绍一个比find快得多的命令,搜索任何文件几乎都能在一秒内返回,时间复杂度O(1)

mlocate
这个命令的原理是,先为文件系统创建索引数据库,mlocate只是搜索索引,所以速度快
准备工作:创建数据库(创建索引)

sudo updatedb 只有root权限才能执行,他会扫描整个系统,为整个系统创建索引,数据库在/var/lib/mlocate/mlocate.db

这个过程会比较慢,可以在中午或晚上跑一下,执行完了上面的命令就可以使用mlocate搜索文件了
使用命令
mlocate abc.txt

mlocate -ie abc.txt 如果abc.txt已经删除了,使用-e会检查文件是否真实存在,而不必updatedb;-i,忽略大小写

mlocate /etc/*profile 在/etc中查找类似profile的文件

注意:对于新增文件应该先updatedb更新数据库,否则就搜不到,当然更新索引时,执行updatedb还是比较快的


过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表