目录导航
plocate简介
plocate 是一个基于发布列表的 locate(1),用更快和更小的索引完全取代了 mlocate。文件搜索工具.
plocate查找系统上与给定模式匹配的所有文件(或者如果给出多个模式,则查找所有模式)。它通过updatedb(8)或(不太常见)从另一个索引由plocate-build(8)转换的索引来做到这一点。
plocate 在很大程度上与mlocate(1)参数兼容,但速度明显更快。特别是,它很少需要扫描整个数据库,除非模式很短(小于三个字节)或者您想搜索正则表达式。它不会尝试保持与 BSD 定位或非 UTF-8 文件名和语言环境的兼容性。大多数 I/O 是异步完成的,但结果是同步的,因此每次输出都以相同的顺序出现。
当给出多个模式时,plocate将搜索与所有模式匹配的文件。这是与mlocate(1)的主要不兼容之处 ,它搜索匹配一个或多个模式的文件,除非给出 -A 选项。
默认情况下,模式被视为要搜索的子字符串。如果给出了至少一个非转义的全局元字符(*、? 或 []),则该模式将被视为全局模式(这意味着它需要以 * 开始和结束以进行子字符串匹配)。如果给出–regexp,则模式被认为是(非锚定的)POSIX 基本正则表达式,如果给出–regex,模式被认为是POSIX 扩展正则表达式。所有这些都符合mlocate(1)的行为。
与mlocate(1)一样,plocate显示调用用户可见的所有文件(由于对所有父目录具有读取和执行权限),并且通过设置 setgid 位运行以访问索引(它是作为 root 构建的),但是通过测试作为调用用户的可见性。
命令参数选项:
选项
-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 quoting style),除非打印到管道,但此选项将关闭此类引用。
-0 , –null不是在每次匹配后都写一个换行符,而是写一个 NUL (ASCII 0)。这对于在由其他工具(如xargs (1))处理时创建明确的输出很有用,因为允许文件名包含嵌入的换行符。
-r , –regexp模式被视为 POSIX 基本正则表达式。有关更多信息,请参见正则表达式 (7)。请注意,这会强制对整个数据库进行线性扫描,这很慢。
–regex与–regexp 类似,但模式被视为 POSIX扩展的正则表达式。
-w , –wholename匹配整个路径名。这是默认设置,所以除非先给出-b(见上文),否则它不会做任何事情。因此,此选项仅作为与mlocate (1) 的兼容性而存在。
–help打印出使用信息,然后成功退出。
–version打印出版本信息,然后成功退出。
示例
plocate 在下面的示例中可以在在短短几毫秒内就从 2700 万个文件中找到了两个文件:
cassarossa:~> time mlocate movit-fosdem-talk
/export/cassarossa/itk/sesse/public_html/movit-fosdem-talk.odp
/export/cassarossa/itk/sesse/public_html/movit-fosdem-talk.pdf
mlocate movit-fosdem-talk 19.75s user 0.33s system 99% cpu 20.118 total
cassarossa:~> time plocate movit-fosdem-talk
/export/cassarossa/itk/sesse/public_html/movit-fosdem-talk.odp
/export/cassarossa/itk/sesse/public_html/movit-fosdem-talk.pdf
plocate movit-fosdem-talk 0.01s user 0.00s system 78% cpu 0.008 total
cassarossa:~> ls -lh /var/lib/[mp]locate/*.db
-rw-r----- 1 root mlocate 1.1G Apr 2 06:26 /var/lib/mlocate/mlocate.db
-rw-r----- 1 root plocate 466M Apr 2 06:28 /var/lib/plocate/plocate.db
plocate下载地址
https://plocate.sesse.net/download/plocate-1.1.15.tar.gz
使用方法:
①在linux任何位置解压:
②在plocate目录下输入如下命令进行搜索:
例如搜索metaspoit
plocate metasploit

参数列表:
└─# plocate -h
用法: plocate [参数]... 模式...
-b, --basename 只搜索路径名中的文件名部分
-c, --count 输出匹配数
-d, --database DBPATH 在DBPATH中搜索文件
(默认为/var/lib/plocate/plocate.db)
-i, --ignore-case 搜索不区分大小写
-l, --limit LIMIT 在LIMIT匹配后停止
-0, --null delimit匹配NUL而不是换行符
-N, --literal 不要引用文件名,即使输出到tty
-r, --regexp 将模式解释为基本的regexp(缓慢)
--regex 将模式解释为扩展的regexp(缓慢)
-w, --wholename 搜索整个路径名(默认;见-b)
--help 输出此帮助
--version 输出版本信息

总之一句话,搜索特别快!
转载请注明出处及链接