找到并更新b无效。我该怎么办?


12

我的locate命令无效,但是我发现必须运行updatedb。但是,调用该命令后,bash说bash: updatedb: command not found。我该怎么办?


没有安装updatedb,或者不在$ PATH变量中。运行updatedb时,必须以root用户或使用sudo来执行。
petrus

您可以使用“查找”来查找updatedb查找/ -name

Answers:


10

我认为您需要安装定位程序。在debian lenny系统中,/ usr / bin / updatedb文件是/ etc / alternatives / updatedb的符号链接,这是/usr/bin/updatedb.findutils的符号链接。

使用dpkg -S,您可以找到文件所属的软件包:

$ dpkg -S /usr/bin/updatedb.findutils 
locate: /usr/bin/updatedb.findutils

所以我认为您需要安装locate,然后以root用户身份运行updatedb。

编辑:是的,您需要定位包。在文件/usr/share/doc/findutils/NEWS.Debian.gz中,您可以阅读:

查找不再包含在findutils包中。它已拆分为单独的程序包“ locate”。

然后在2007年11月11日的更改日志中的/usr/share/doc/findutils/changelog.Debian.gz中:

将locate / updatedb拆分到一个单独的程序包。


10

它尚未安装且不在natxo列出的目录中,但是我找到了安装它的解决方案。谢谢你们的领导!

http://www.nicecabbage.com/2009/08/install-locate-and-updatedb-on-centos-and-debian/

根目录: apt-get install locate


?? 显然我没有正确解释。在安装 updateb 的debian系统中,使用dpkg -S告诉我它属于哪个软件包。这就是为什么我写了您需要定位包的原因,这就是您所做的。不过,很高兴您自己找到了它。
natxo asenjo 2010年

对于CentOS / RHEL,是yum -y install mlocate。
music2myear 2013年

2

必须以root身份运行的命令的必需项不在用户的$ PATH中,因此只需运行:

$ sudo更新b

它应该工作。


0

您必须以管理权限调用“ updatedb”。据我所知,findutils是标准Debian发行版/ installation的一部分,因此请查看/etc/updatedb.conf和/etc/cron.daily/(s)locate。

如果没有任何问题,那么每天都要进行一次新的updateb [定位数据库]的构建,因此您不必担心这一点

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.