macos - 为什么 unix locate 命令仍然显示不再存在的文件/文件夹?

标签 macos unix terminal mamp locate

我最近将整个本地 Web 开发区域转移到使用 MacPorts 的东西,而不是在我的 Mac 上使用 MAMP。我已经开始使用 Python/Django 并且不再需要 MAMP。

问题是,我已经从 Applications 文件夹中卸载了 MAMP,也有首选项文件,但是为什么当我在终端中运行“定位 MAMP”命令时,它仍然显示我所有的/Applications/MAMP/东西,就好像它仍然存在一样?当我 ' cd ' 进入/Applications/MAMP/它不存在?

与 locate 是一种索引搜索系统有关,因此这些旧文件路径被缓存了吗?请解释原因,以及如何对其进行排序,以便它们不再显示。

最佳答案

您的想法是正确的:locate使用名为“locatedb”的数据库'。它通常由系统 cron 作业更新(不确定在 OS X 上是哪个);您可以使用 updatedb 强制更新命令。见 http://linux-sxs.org/utilities/updatedb.html其中。

此外,如果您没有找到您期望的文件,请注意 OSX 的 BUGS 部分中的这一重要警告 locate(1)手册页:
The locate database is typically built by user ''nobody'' and the locate.updatedb(8) utility skips directories which are not readable for user ''nobody'', group ''nobody'', or world. For example, if your HOME directory is not world-readable, none of your files are in the database.

关于macos - 为什么 unix locate 命令仍然显示不再存在的文件/文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1060919/

相关文章:

c - 在 C 中将模板字符串中的\b 处理为 printf

PHP——运行 shell_exec() 不返回所有输出

ios - CBCentralManagerScanOptionSolicitedServiceUUIDsKey 的目的

UNIX grep - 如何在特定命名的文件中递归查找文本?

python - psutil.Process 和 lsof 命令差异

c - 为什么 file_operations 中的 unlocked_ioctl 返回 long,而 sys/ioctl.h 中的 ioctl() 返回 int?

Linux - 如何从数组中找到短语

c - mac osx 开发环境

macos - Mac 上的 Delphi XE7(up1) 中的 TOpendialog 有问题?

java - 如何在 Mac OS X 上获取文件类型?