Answers:
尝试:
sudo /usr/libexec/locate.updatedb
并查看配置:
/etc/locate.rc配置文件
编辑:
发表在这里输出:
echo $LOCATE_CONFIG
和:
cat /etc/locate.rc
和:
echo $0
更新:
查找程序在数据库中搜索与指定模式匹配的所有路径名。数据库数据库是定期(通常每周或每天)重新计算的,并且包含所有可公共访问的文件的路径名。
尝试mdfind代替定位
更新2:
mdfind -name文本更准确。只是mdfind文本为您提供了也包含文本的文件。–大卫·克伦波蒂奇
mdfind -name text
mdfind -name text
为更准确的答案。只mdfind text
给您包含文本的文件。
权限可能是罪魁祸首,因为定位显然无法读取世界不可读的文件。见这个答案由Plundra更多的解释。
该的findutils从包自制并启用gupdatedb
,并glocate
似乎克服一些内置的实用工具的限制命令。
mdutil
检查一下有意义吗?我可以想到的一个用例是,我可以使用gupdatedb
- 手动触发重新扫描-使用Spotlight不太容易,否则会花费更长的时间(它还会索引文件内容)。还有其他优势吗?
updatedb
更快。glocate
索引系统文件似乎没有问题,而我发现mdfind
忽略〜/ Library和其他系统文件。我肯定觉得我得到更多的点击有glocate
超过mdfind
在大多数情况下。YMMV。
sudo gupdatedb
,然后保存了glocate Radium
输出。然后我跑了gupdatedb
,它说:/.Trashes: Permission denied
,其他一些文件夹也一样。我比较了两者的输出,结果是一样的!奇怪...
sudo gupdatedb
(以root用户身份运行),然后又以gupdatedb
普通用户身份运行,该用户将无法访问root用户有权访问的文件,这意味着您将获得权限被拒绝的错误。如果您想要整个系统的完整文件名数据库,请继续以root用户身份运行它。这会将您的文件暴露给系统上可能使用该glocate
命令的其他用户。但是,如果您是唯一的用户,那应该没问题。
#SEARCHPATHS="/"
在配置中没有评论,它没有帮助。-v
选项似乎未产生任何其他输出:/