plocate 是一个更快的定位(mlocate 的直接替换)

locate 是一个 Unix 工具,用于在文件系统上按名称查找文件,它使用生成文件的预构建数据库(使用 updatedb)。 使用 locatefind,但它需要更新数据库以查找新添加的文件。

locate 创建于 1982 年,BSD 和 GNU Findutils 版本源自原始实现。

plocate 是一个较新的(第一个稳定版本不到一年前),速度要快得多 locate. 它基于发布列表,在更小的索引上提供更快的搜索。

命令行工具是替代品 mlocate (合并定位;访问受限的数据库,仅显示用户可访问的文件名)几乎所有方面,包括重用 mlocate 数据库(使用 plocate 创建自己的索引 plocate-build 它读取由 updatedb), 和 在 SSD 和 HDD 上都很快.

plocate 通过在搜索字符串中的三元组(三个字节的组合)上创建倒排索引来工作,这使它能够快速将候选集缩小到一个非常小的列表,而不是线性扫描每个条目。 如果可用(Linux 5.1+),它使用 io_uring 异步执行几乎所有 I/O,这减少了寻道延迟对没有 SSD 的系统的影响。

如何使用 find 查找最近 N 天或几分钟内修改过的文件

为了展示 plocate 与 mlocate 相比有多快,plocate 开发人员在该工具的主页上展示了此基准测试,其中 plocate 能够在几毫秒内找到 2700 万个文件中的 2 个: