Linux命令之locate

locate [选项] [pattern]

    在mlocate数据库中搜索条目。配合数据库缓存快速查看文件相关位置。

    locate命令和find -name功能差不多,但是比find搜索要快。因为find命令查找的是具体目录文件,而locate搜索的是一个数据库/var/lib/mlocate/mlocate.db,这个数据库中存有本地所有的文件信息,该数据库是Linux自动创建并每天自动更新维护。相关的配置信息在/etx/updatedb.conf,定时任务信息在/etc/cron.daily/mlocate。

(1).常用选项

-d,--database DBPATH 使用DBPATH代替默认数据库(/var/lib/mlocate/mlocate.db)
-h,--help 帮助
-i,--ignore-case 匹配pattern时忽略大小写
-r,--regexp REGEXP 搜索基本正则表达式REGEXP代替pattern
--regex pattern是扩展正则表达式
-V,--version 版本信息

(2).实例

  查找名字里带有updatedb的文件(Linux一切皆文件),如果目录匹配则会显示所有子文件

[xf@xuexi ~]$ locate updatedb
/etc/updatedb.conf
/usr/bin/updatedb
/usr/share/augeas/lenses/dist/updatedb.aug
/usr/share/man/man5/updatedb.conf.5.gz
/usr/share/man/man8/updatedb.8.gz
/usr/share/vim/vim74/ftplugin/updatedb.vim
/usr/share/vim/vim74/syntax/updatedb.vim

  由于默认-w选项查找完整路径,还可以选择部分路径查找

[xf@xuexi ~]$ locate /etc/updatedb
/etc/updatedb.conf
[xf@xuexi ~]$ locate /syntax/update
/usr/share/vim/vim74/syntax/updatedb.vim

    为避免locate找不到新创建的文件,可以使用updatedb立刻更新数据库(需要root用户)

[root@xuexi ~]# touch OnePiece
[root@xuexi ~]# locate OnePiece
[root@xuexi ~]# updatedb
[root@xuexi ~]# locate OnePiece
/root/OnePiece

    不区分关键字的大小写

[root@xuexi ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  OnePiece  模板  图片  下载  桌面
core.3160        onepiece              公共      视频  文档  音乐
[root@xuexi ~]# locate -i onepiece
/root/OnePiece
/root/onepiece

  

上一篇:如何安装locate


下一篇:Codeforces Round #742 (Div. 2) Problem - C. Carrying Conundrum 题解