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目录下创建文件,想搜索却找不到,原因就在这。

posted @ 2015-08-03 20:25  猪头劲  阅读(208)  评论(0编辑  收藏  举报