locate是一个系统命令,用于建立文件索引,当我们需要寻找什么文件的时候,只要敲入

locate xxx

它就会搜索全系统中匹配这个名字的文件。 但是在某个新的机器里面,我locate某文件,始终显示如下的错误信息:

locate: can not stat () 
    `/var/lib/mlocate/mlocate.db': No such file or directory

其实你只要man下它,看到description就可以知道一些端倪:

locate reads one or more databases prepared by updatedb(8) and writes file names matching at least one of the PATTERNs to standard output, one per line.

它的内容其实是存储在/var/lib/mlocate/下的一个数据库里面,而没有初始化,自然就会出错,只要

updatedb

等执行完毕,检查那个目录

root@argcv ~]# ls -al /var/lib/mlocate/
total 10456
drwxr-x---  2 root slocate     4096 Jun 23 13:58 .
drwxr-xr-x 26 root root        4096 Jun 23 13:28 ..
-rw-r-----  1 root slocate 10698443 Jun 23 13:58 mlocate.db

然后就正常了...

References:

  1. 'locate' command not working [SOLVED]
来自的你,很高兴你能看到这儿。若本文对你有所用处,或者内容有什么不足之处,敬请毫不犹豫给个回复。谢谢!