日期:2014-05-16  浏览次数:20678 次

whereis和locate是否搜寻的是同一个文件数据库?
看鸟哥的书,如果我理解没问题的话,他们搜寻的应该是同一文件数据库

但是我在新建一个文件,然后updatedb之后搜寻。却发现locate可以正常找到,而whereis却找不到。为什么呢  见下图

另外请教下
在下图中,我在未更新db之前,用whereis searTest命令的下一行为啥有个反斜杆?代表什么意思?而第二次搜的时候就没有

------解决方案--------------------
应该不是一个数据库吧
locate 应该使用了自己的数据,需要updatedb更新


"用whereis searTest命令的下一行为啥有个反斜杆"
不会是你敲回车的时候,把它上面的那个键也捎带按了吧?
------解决方案--------------------
我觉得不是一个。locale应该是独立的一个,whreis应该是在path里找

第2个话确实很有可能是自己稍微的哦
------解决方案--------------------
whereis只在特定的目录寻找
------解决方案--------------------
我说的不对,whereis不是在path中找,应该是which在path中找


------解决方案--------------------
whereis 通常用来找命令吧

locate 没用过,应该可以用来找任何一个文件
------解决方案--------------------
感觉whereis 比 which丰富一些
whereis - locate the binary, source, and manual page files for a command
which - shows the full path of (shell) commands.

locate 的功能应该与find 差不多,它只是有一个自己的索引数据库,可以加速文件的查找
------解决方案--------------------
whereis 可以用来找二进制文件,源码,和man手册,故可以推测回到path,lib,man手册中找

locate应该是有自己的一套索引机制,最好的方法是读源码。。