Linux之locate命令

版权声明:本文为博主原创文章,转载需保留原始链接。 https://blog.csdn.net/qiulinsama/article/details/86467918

  关于查找命令我们一般会想到find这个命令,但是因为find是直接查找硬盘,比较费时,这里我们新介绍一个查找命令:locate。
  我们发现使用locate来寻找数据特别快,这是因为locate寻找的数据是由已建立的数据库/var/lib/mlocate/里面的数据所查到的,所以不用直接再去硬盘当中读取数据。但是这个命令也是有限制的,因为它是由数据库来查找的,而数据库的建立默认是每天执行一次,所以当你新建立的文件,在更新数据库之前查找该文件,locate会提示找不到,但是这种情况也是可以解决的,这里需要用到updatedb命令。
  直接输入updatedb命令即可,updatedb命令会去读取/etc/updatedb.conf这个配置文件的设置,然后再去硬盘里面进行查找文件名的操作,最后就是更新整个数据库文件。因为updatedb会去查找硬盘,所以当你执行updatedb命令时,可能会等待数分钟的时间。
语法:

locate [OPTION]... PATTERN...
选项和参数:
-i:忽略大小写;
-c:不输出文件名,仅计算找到的文件数量;
-l:仅输出几行的意思,例如输出5行则是-l 5;
-S:输出locate所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等;
-r:后面可接正则表达式的显示方式

For example:

[root@yql ~]$ locate -l 4 passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
[root@yql ~]$ locate -S
数据库 /var/lib/mlocate/mlocate.db:
	99,043 文件夹
	2,207,258 文件
	146,829,232 bytes in file names
	49,806,377 字节用于存储数据库
[root@yql ~]$ touch yql
[root@yql ~]$ updatedb
[root@ut23 ~]$ locate yql
/root/yql

参考:《鸟哥的Linux私房菜》

猜你喜欢

转载自blog.csdn.net/qiulinsama/article/details/86467918