我的locate
命令不起作用,但我发现我必须运行updatedb
。但是,在调用该命令时,bash 说bash: updatedb: command not found
。我该怎么办?
答案1
我认为您需要安装locate程序。在debian lenny系统中,/usr/bin/updatedb文件是/etc/alternatives/updatedb的符号链接,而/etc/alternatives/updatedb又是/usr/bin/updatedb.findutils的符号链接。
使用 dpkg -S 你可以找到文件所属的包:
$ dpkg -S /usr/bin/updatedb.findutils
locate: /usr/bin/updatedb.findutils
因此我认为您需要安装locate,然后以root身份运行updatedb。
编辑:是的,您需要locate包。在文件/usr/share/doc/findutils/NEWS.Debian.gz中您可以阅读:
findutils 包中不再包含 findutils 包。它已被拆分为单独的“locate”包。
然后在 /usr/share/doc/findutils/changelog.Debian.gz 中,2007 年 11 月 11 日的变更日志中:
将locate/updatedb分离到一个单独的包中。
答案2
它没有安装,也不在natxo列出的目录中,但我找到了一个安装它的解决方案。感谢各位的指导!
http://www.nicecabbage.com/2009/08/install-locate-and-updatedb-on-centos-and-debian/
在根目录中:apt-get install locate
答案3
为了使您的locate命令正常工作,请从apt安装locate,然后运行命令updatedb。
sudo apt install locate
sudo updatedb
答案4
您必须使用管理员权限调用“updatedb”。据我所知,findutils 是标准 Debian 发行版/安装的一部分,因此请查看 /etc/updatedb.conf 和 /etc/cron.daily/(s)locate。
如果没有损坏,则构建一个全新的 updatedb [定位数据库] 是一项每日 cronjob,因此您不必担心这一点