博主信息
Sky
博文
291
粉丝
0
评论
0
访问量
6694
积分:0
P豆:617

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

2021年10月21日 19:00:02阅读数:11博客 / Sky

使用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还是比较快的


版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • linux find用法有:1、【find -name】直接根据名字来;2、【find -perm】根据权限来;3、【find -mtine -n(+n)】根据更改时间来
    linux中,可以使用find或是locate位置,语法格式为“find / -name 名称”和“locate 名称”。
    linuxfind使用格式:【find [目录] [规则]】。
    linuxfind使用方法:【# find . -name "*.c"】,表示将当前目录及其子目录所有延伸档名是c列出来。find用来在指定目录
    linux中,find用于在指定目录,基本语法“find path -option..”。
    linux:1、find,可以任何想要;2、locate不到最新变动过;3、whereis,只搜索二进制、man说明和源代码;4、which
    linux改变php上传大小方法:首先通过linuxfind / -name php.ini”到php.ini;然后修改“upload_max_filesize”和“post_max_size
    linux find实现模糊方法:根据名模糊询,opt目录后缀为【.log】,代码为【find /opt/ -type f -name "*.log"】。
    php安装目录一般默认在“/var/www”里面,如果是自定义安装,则可以用Linux进行是“find / -name "*www*"”。
    locate指是用来或目录, locatefind -name】得多,原因在于它不搜索具体目录,而是搜索一个数据库,语法是【locate [OPTION]...
    linux清空某目录内方法:1、使用“rm -f *”指删除当前目录所有;2、使用find普通并删除;3、通过“rm-f `find .
    php设置大小方法:首先用linux,代码为【find / -name php.ini】;然后设置大小即可,代码为【client_max_body_size 35m】。
    linux修改php.ini路径方法:首先通过“sudo find / -name php.ini”PHP配置;然后通过“--with-config-file-path”来修改PHP配置即可
    linuxphp无法解析解决方法:首先执行【find / -name "httpd.conf"】配置并打开;然后在配置中添加内容【AddType application
    linux apache不解析php解决办法:首先使用find到apache配置;然后在根目录执行语句“#find / -name "httpd.conf"”;最后修改
    Linux修改PHP配置方法:首先执行find / -name php.ini”到php.ini;然后打印出“phpinfo()”;最后修改php配置即可,语句为“local/php
    php json解析不出来解决办法:首先切换到相应项目目录;然后在Linux包含BOM头和清除BOM头并执行相关即可。