locate

来自 Arch Linux 中文维基

这篇文章的某些内容需要扩充。

原因: Cover plocate and potentially other alternatives. (在 Talk:Locate 中讨论)

locate 是一种常见的 Unix 工具,用于按名称快速查找文件。它通过搜索预先构建的数据库文件来提高查找工具的速度,而不是直接搜索文件系统。这种方法的缺点是:自构建数据库文件以来所做的更改无法被 locate 检测到。有计划的数据库更新,可以最大程度地减少此问题。

mlocate (Merging Locate) 是一个更安全的locate 版本,它只显示用户可访问的文件。

plocate (Posting Locate) 是一个基于posting lists的定位工具,它提前使用 mlocate 的数据库,并从中制作更快(更小)的索引。

安装[编辑 | 编辑源代码]

安装 mlocate 或者 plocate 软件包。

虽然 GNU findutils 也包含一个 locate 实现,但 Arch 的 findutils 软件包并不包含。

用法[编辑 | 编辑源代码]

在使用 locate(1) 之前,需要先创建数据库,这可以通过 updatedb(8) 命令来完成,顾名思义,它可以更新数据库。

mlocate 包含一个 updatedb.timer 单元,而 plocate 包含一个 plocate-updatedb.timer 单元。mlocate 会在安装时启用定时器,如果你想在重启前使用它,可以手动启动它。你也可以随时以 root 身份手动运行 updatedb

为了节省时间,updatedb 可以(在默认情况下)通过编辑 /etc/updatedb.conf 来忽略某些文件系统和路径。updatedb.conf(5) 描述了该文件的语义。值得注意的是,默认配置 (PRUNEPATHS) 忽略的路径包括 /media/mnt,因此 locate 可能无法发现外部设备上的文件。

参见[编辑 | 编辑源代码]