locate命令如何工作

时间:2013-12-17 17:42:13

标签: linux shell ubuntu-12.04

当我从locate test.rb在ubuntu 12.04上运行/home/user/ruby时,它显示系统中以test.rb结尾的所有文件,/home/user/ruby中的test.rb除外。

enter image description here

http://www.linfo.org/locate.html我看到locate命令只返回用户具有访问权限的文件,我创建了这个文件我有完全权限,那么为什么locate没有显示它的路径。

2 个答案:

答案 0 :(得分:6)

您需要阅读文档到最后,更新定位数据库是必要的:

sudo updatedb

来自您已关联的documentation

  

由于数据库未立即更新,因此使用locate或slocate搜索时,最近创建的文件和目录可能不会显示。但幸运的是,手动更新数据库是一件简单的事情,尽管可能需要几分钟时间。手动更新可以通过以root用户(即管理用户)身份登录来完成,例如使用su(即替代用户)命令,然后发出以下命令:

     

updatedb的

答案 1 :(得分:4)

实际上,locate使用的数据库通常是定期更新的,并且是系统范围的。可以通过以足够的权限运行命令updatedb来手动更新此数据库 - 正如locate的手册页所示:“locate永远不会报告在最近更新相关数据库之后创建的文件。”