欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Linux学习笔记】6:文件搜索命令locate

程序员文章站 2022-06-29 18:58:46
...

文件搜索命令有locate和find,本节学习loacte,它的好处是速度比find要快许多。缺点是只可以按照文件名来搜索。

locate文件搜索

locate [文件名]

选项:没有选项。它不是遍历全部目录,而是搜索/var/lib/mlocate(保存的是locate的数据库,不同的linux版本这个目录不同,可以用locate locate去看看那个目录在哪)。然而这个数据库不是实时更新的,它的更新频率一般是一天一更新,对于某些新建的文件在更新前可能搜索不到。

*找不到新建的文件

[root@bogon ~]# ll
总用量 44
-rw-------. 1 root root  1392 822 18:22 anaconda-ks.cfg
-rw-r--r--. 1 root root 27016 822 18:22 install.log
-rw-r--r--. 1 root root  7572 822 18:20 install.log.syslog
[root@bogon ~]# locate install.log
/root/install.log
/root/install.log.syslog
[root@bogon ~]# touch myok
[root@bogon ~]# locate myok
[root@bogon ~]# 

updatedb手动更新数据库

(词汇:update database)

*手动更新后就能找到它了

[root@bogon ~]# updatedb
[root@bogon ~]# locate myok
/root/myok

locate命令的配置文件

locate命令按照/etc/updatedb.conf配置文件的要求来搜素(后面将学的whereis和which命令也遵循这个配置文件),可以打开它看一下:
【Linux学习笔记】6:文件搜索命令locate
*第一句

PRUNE_BIND_MOUNTS = "yes"

写”yes”表示这个文件中的筛选规则全部生效。

*第二句

PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"

里面的是不筛选的文件系统。

*第三句

PRUNENAMES = ".git .hg .svn"

表示不搜索文件名中包含这些关键字的文件,它认为这些文件对我们的使用者没有作用,所以不搜索。

*第四句

PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"

表示这些目录中更新的文件不会被搜索。