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