plocate linux上最快的搜索工具 快速查找文件

plocate linux上最快的搜索工具 快速查找文件

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 linux上最快的搜索工具 快速查找文件

参数列表:

└─# 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          输出版本信息
plocate linux上最快的搜索工具 快速查找文件

总之一句话,搜索特别快!

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。