5 osx-snow-leopard locate macos
在 OS X 上,我认为 locate DB 是通过运行来填充的:
sudo /usr/libexec/locate.updatedb
Run Code Online (Sandbox Code Playgroud)
但是 locate 似乎没有在 ~/
默认情况下,locate.updatedb 应该索引我的主文件夹吗?如果是这样,任何建议或想法为什么不是?如果默认情况下它不索引 ~/ ,是否有任何理由不索引此文件夹层次结构?如果没有,我该如何配置它?
此外,当我从 ~/ (作为非 root 用户)运行 locate.updatedb 时,它可以工作。当我从下面的任何内容(例如,~/Desktop/)运行它时,我收到以下错误:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
find: .: Permission denied
Run Code Online (Sandbox Code Playgroud)
小智 6
Locate 以“nobody”用户身份运行,以防止其他用户看到 locate 数据库中的“您的”文件。由于您的帐户是唯一有权浏览您的文件的帐户,因此 locate 无法看到它们。即使您的帐户是唯一的本地用户,此限制也适用。当您sudo使用 locate.updatedb 脚本时,find它生成的命令特别以非特权方式启动。虽然您可以修改脚本以防止出现此问题,但我不能说这是推荐的。
此外,默认情况下不启用定位,因为它假定 Spotlight/MDS 对大多数人来说更好。我建议尝试 mdfind 命令。如果您确实决定要定期运行 locate,请执行sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist加载其 launchd 作业以进行定期重新索引。
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |