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一切皆文件),如果目录匹配则会显示所有子文件

[[email protected] ~]$ 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选项查找完整路径,还可以选择部分路径查找

[[email protected] ~]$ locate /etc/updatedb 
/etc/updatedb.conf 
[[email protected] ~]$ locate /syntax/update 
/usr/share/vim/vim74/syntax/updatedb.vim

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

[[email protected] ~]# touch OnePiece 
[[email protected] ~]# locate OnePiece 
[[email protected] ~]# updatedb 
[[email protected] ~]# locate OnePiece 
/root/OnePiece

    不区分关键字的大小写

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

  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/2905.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论