命令行手册

Man » 在线 locate 手册 - 详细的在线 locate 手册文档

🌍
plocate - 快速查找文件

概要

plocate [选项]... 模式...

描述

plocate 查找系统中与给定模式匹配的所有文件(如果给定多个模式,则查找所有模式匹配的文件)。它通过使用 updatedb(8) 创建的索引(或者较少情况下,使用 plocate-build(8) 从另一个索引转换而来)来实现。

plocate 在参数上与 mlocate(1) 基本上兼容,但速度更快。特别是,除非模式非常短(少于三个字节),或者您想要搜索正则表达式,否则它很少需要扫描整个数据库。它不尝试与 BSD locate 或非 UTF-8 文件名和区域设置兼容。大多数 I/O 操作都是异步进行的,但结果是同步的,因此输出的顺序始终相同。

当给定多个模式时,plocate 将搜索与所有模式匹配的文件。这是与 mlocate(1) 的主要不兼容之处,mlocate(1) 搜索与一个或多个模式匹配的文件,除非指定了 -A 选项。

默认情况下,模式被视为要搜索的子字符串。如果给出了至少一个未转义的通配符(*、? 或 []),则该模式将被视为通配符模式(这意味着它需要以 * 开头和结尾才能进行子字符串匹配)。如果给出了 --regexp,则模式将被视为(非锚定)POSIX 基本正则表达式,如果给出了 --regex,则模式将被视为 POSIX 扩展正则表达式。所有这些都与 mlocate(1) 的行为相匹配。

与 mlocate(1) 类似,plocate 显示调用用户可见的所有文件(通过对所有父目录具有读取和执行权限),并且不显示任何不可见的文件,通过使用 setgid 位访问索引(由 root 用户构建),但通过测试调用用户的可见性来实现。

退出状态

plocate 退出时返回 0,表示找到了匹配项,或者传递了 --help 或 --version。否则,plocate 退出时返回状态码 1,表示发生错误或未找到匹配项。

选项

-A, --all

为了与 mlocate(1) 兼容而忽略。

-b, --basename

仅匹配文件名的部分路径,即排除目录名进行匹配(但仍然打印)。这不会加快搜索速度,但可以抑制不感兴趣的匹配。

-c, --count

不打印每个匹配项。而是计算它们,并在最后打印总数。

-d, --database DBPATH
在给定的数据库中查找匹配项,而不是 /var/lib/plocate/plocate.db。可以多次给出此参数,以搜索多个数据库。也可以在一个参数中给出多个数据库,用 : 分隔 \。(任何字符,包括 : 和 \,都可以通过在前面添加 \ 来转义。)

-e, --existing
仅打印引用在 `locate` 运行期间存在的文件条目。 请注意,与 `mlocate(1)` 不同,默认情况下不会跟踪符号链接(并且没有更改此行为的选项)。

-i, --ignore-case
执行当前区域设置中指定的区分大小写匹配(默认情况下为区分大小写的逐字节匹配)。 请注意,`plocate` 不支持完整的 Unicode 大小写折叠规则;特别是,搜索 ß 不会在德语区域设置中返回 ss 的匹配项。 此外,请注意此选项将比区分大小写的匹配慢,因为它需要生成更多用于搜索索引的候选对象。

-l, --limit LIMIT
在找到 LIMIT 个匹配项后停止搜索。 如果给定了 `--count`,则打印的数字最多为 LIMIT。

-N, --literal
打印不带引号的条目名称。 通常,`plocate` 会转义文件名中的特殊字符,以便它们可以安全地供典型的 shell 使用(类似于 GNU coreutils `shell-escape-always` 引用样式),除非输出到管道,否则此选项将禁用此类引用。

-0, --null
在每个匹配项之后,写入一个 NUL(ASCII 0),而不是写入一个换行符。 这对于创建明确的输出非常有用,因为该输出将由其他工具(如 `xargs(1)`)处理,因为文件名可以包含嵌入的换行符。

-r, --regexp
将模式视为 POSIX 基本正则表达式。 有关更多信息,请参阅 `regex(7)`。 请注意,这将强制对整个数据库进行线性扫描,这速度很慢。

--regex
类似于 `--regexp`,但模式而是视为 POSIX 扩展正则表达式。

-w, --wholename
匹配整个路径名称。 这是默认设置,因此,除非首先给定了 -b,否则它不会执行任何操作。 因此,此选项仅用于与 `mlocate(1)` 兼容。

--help
打印使用信息,然后成功退出。

--version
打印版本信息,然后成功退出。

环境

LOCATE_PATH
如果给定,则将其附加到 `--database` 路径列表之后(无论是否给定了显式路径或使用默认路径)。 冒号分隔和字符转义遵循与 `--database` 相同的规则。

作者

Steinar H. Gunderson <\_\>

参见

plocate-build(8),mlocate(1),updatedb(8)