locate命令查找不存在的文件

locate命令查找不存在的文件

我使用运行 High Sierra 的 Mac。我正在清理我的硬盘,并寻找我从 Mac 中删除的程序的残余部分。我使用这样的定位命令:locate Canopy。我曾经安装过 Enthought Canopy 软件包。当我运行该命令时,我得到了大约 16 个 Canopy 实例。这是第一个:/Applications/Enthought Canopy (64-bit)。其他 15 行只是这一行的延伸。我在“应用程序”文件夹中搜索了“Enthought Canopy(64 位)”文件,但它不存在。如果我使用命令行尝试cd "/Applications/Enthought Canopy (64-bit)"它会说“没有这样的文件或目录。有谁知道为什么locate给我错误的信息?

答案1

也就是说locate(1),运行man 1 locate可以读到

DESCRIPTION
     The locate program searches a database for all pathnames which match the
     specified pattern.  The database is recomputed periodically (usually
     weekly or daily),

这可以很好地解释过时的结果。除此之外还有一点:

 /System/Library/LaunchDaemons/com.apple.locate.plist  Job that starts the
                                                       database rebuild

这表明每周重建一次。 (这是在 Mac OS X 10.11 版本上的,所以苹果可能从那时起就做了一些改动。)

在 macOS 上更典型的可能是使用mdfind与 Spotlight 数据库相关的类似工具;该数据库可能比定位数据库更频繁地更新。 (但我已经禁用了 Spotlight 工具,因为它们对我旧的 Spinny Metal 2009 硬盘上的 I/O 造成了疯狂......)

相关内容