如何更新Linux“定位”缓存


73

如何更新定位的缓存/索引?我安装了新软件包,并且文件显然还没有索引。那么,为了使索引器触发,我必须提交哪个命令?

我目前正在研究debian jessie(测试):使用Linux mbpc 3.13-1-amd64#1 SMP Debian 3.13.7-1(2014-03-25)x86_64 GNU / Linux


如果您locate来自GNU Find Utilities项目(如果使用的是Debian Jessie,则可能是该项目),则可以在此处找到该项目的网站和文档:gnu.org/software/findutils
sampablokuper

Answers:


102

该命令是:

sudo updatedb

请参阅man updatedb以获取更多详细信息。


1
我记得您必须扎根才能做到这一点,否则便会感到
羞耻

1
并把它作为一个cron。
FlorinAsăvoaie2014年

18
如果您不是root用户,则无论如何都不应该使用ServerFault ...
Jenny D

3
@JennyD这不是ServerFault ...
John Hunt

2
这里有一点要注意,该命令在Debian Stretch RC3和Sata SSD驱动器上运行约13分钟,因此请耐心等待。
Marecky

21

在OSX上,这是: sudo /usr/libexec/locate.updatedb

可以链接到: sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb

似乎必须为标准的unix命令建立符号链接是很愚蠢的,但是确实如此。


0

在debian / ubuntu上,您可以找到以下哪种安装的locate:

dpkg -S locate | grep /bin/

以我为例:

mlocate: /usr/bin/updatedb.mlocate

要查看负责哪个cron作业,请运行:

dpkg -L mlocate | grep cron

在我的情况下显示:

/etc/cron.daily
/etc/cron.daily/mlocate

要更新数据库,请以root身份运行cron作业:

sudo /etc/cron.daily/mlocate

如果没有cronjob,并且updateb本身不起作用,请尝试使用以下命令查找已安装的风味:

dpkg -L mlocate | grep /bin/

返回:

/usr/bin/mlocate
/usr/bin/updatedb.mlocate
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.