如何更新定位的缓存/索引?我安装了新软件包,并且文件显然还没有索引。
那么我必须提交哪个命令才能触发索引器? (测试):
与Linux mbpc 3.13-1-amd64#1 SMP Debian 3.13.7-1(2014-03-25)x86_64 GNU / Linux

评论

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

#1 楼

命令为:

sudo updatedb


有关更多详细信息,请参见man updatedb

评论


我记得您必须是root用户才能这样做

–大卫·拉卡托斯(David Lakatos)
2014年4月14日上午8:11

并把它作为一个cron。

–弗洛林·阿斯瓦伊(FlorinAsăvoaie)
14年4月14日在8:17

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

–珍妮D
14年4月14日在8:30

@JennyD这不是ServerFault ...

–约翰·亨特
2014年12月1日下午14:08

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

– Marecky
17年6月1日在20:33

#2 楼

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

可以与以下对象链接:sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb

似乎必须为标准的unix命令建立符号链接,但这很愚蠢。

#3 楼

尽管答案:

 sudo updatedb
 


从技术上讲是正确的,但这绝不是一个好主意如果还安装了cron作业,请自行在命令行上运行updatedb。根据Unix的风格,cronjob包含锁定规定和独立的updatedb命令未涵盖的任何数量的配置。确定特定主机的适当cron作业并手动运行。

根据管理员的不同,updatedb的cronjob可能隐藏在各个位置。因此,一个简单的蛮力尝试来找到cron作业:
在我的一个Ubuntu系统上显示了以下结果:一种更系统化的方法是确定提供( sudo crontab -l > /tmp/crontab.root; ( echo /tmp/crontab.root; ls -1d /etc/*cron* /etc/*cron*/* ) \ | tr '\n' 'sudo /etc/cron.daily/mlocate ' \ | xargs -0 -r -e grep -nH -e updatedb; rm -f /tmp/crontab.root ) 2>/dev/null locate的软件包。例如,在具有apt / dpkg封装的操作系统上,您可以找到以下哪种安装的定位方法: br />对于我来说是:

/etc/cron.daily/mlocate:5:[ -x /usr/bin/updatedb.mlocate ] || exit 0
/etc/cron.daily/mlocate:21:flock --nonblock /run/mlocate.daily.lock $IONICE /usr/bin/updatedb.mlocate


要查看哪个cron作业(如果有),请运行: />
我的情况如下:

mlocate: /usr/bin/updatedb.mlocate


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

< pre class =“ lang-bsh prettyprint-override”> updatedb

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

 dpkg -S locate | grep /bin/
 


,它返回:

dpkg -L mlocate | grep cron


注意:如果您对这个答案不满意,请保持友好,让我知道为什么业余爱好者的答案被认为更好。

评论


sudo crontab -l在Linux mint上不为根生成crontab。可能是什么问题 ?

–亨利克·德·索萨(Henrique de Sousa)
20-4-23在13:43

@HenriquedeSousa通常没有root的crontab。因此,这不是问题。在/etc/cron.monthly、/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly中都有脚本,它们是作为root执行的。或者/etc/crontab、/etc/cron.d中有crontab条目,可以在其中指定用户。但是,某些管理员确实为root添加了用户crontab,因此crontab -l仅用于确保用户身份。

– Wolfmanx
20-4-30在16:03