linux初学者笔记(6):文件搜索命令 locate
命令格式:
locate 文件名
解释:这个命令可以搜索文件,获得文件的路径。例如,我想搜索install
深入一点,运行这个命令到底干了些什么呢?
其实,这个命令不是逐个文件的去找,不像杀毒软件那样,而是在系统的/var/lib/mlocate下找的,这里存放着操作系统文件的名字和路径,也就是locate的后台数据库。我们先看一下下面的例子:
奇怪!?为何找不到file01这个文件??
原来,这是由于新建的文件是不会把其基本信息放入locate的后台数据库的,而后台数据库是一天更新一次的。换句话说,如果想要用locate找到新创建的文件就要等到第二天。但万一很着急呢?
用updatedb命令吧
如此就能强制更新。
但是locate命令其实还有一个坑,请看
为什么找不到test111,不是都强制更新了后台数据库了吗??
原来,这涉及到locate命令的配置文件/etc/updatedb.conf问题
用vi打开文件
vi /etc/updatedb.conf
可以看到这货有几个关键点:PRUNE_BIND_MOUNTS,PRUNEFS,PRUNENAMES,PRUNEPATHS
第一个关键点,若为yes,那么代表这个配置文件的规则全部生效,否则全不生效。
第二个关键点,里面都是一些文件系统,如果配置文件规则生效,那么就不搜素这一类文件系统的文件。
第三个关键点,如果配置文件规则生效,则不搜索含有这些关键字的文件
第四个关键点,很明显是一些目录,如果生效,那么就不搜索这些目录,显然这里就找到答案了,刚刚在tmp目录下创建文件,想搜索却找不到,原因就在这。