不要 locate 命令,Linux plocate 才是更好的选择

系统 Linux
当您需要在 Linux 中搜索某些文件时,您通常可能会使用find或locate命令。不过,现在您有了一个名为plocate的命令。

 [[441568]]

plocate查找系统上与给定模式匹配的所有文件。基于locate,在更小的索引上提供更快的搜索。

当您需要在 Linux 中搜索某些文件时,您通常可能会使用find或locate命令。不过,现在您有了一个名为plocate的命令。

plocate 通过在搜索字符串中的三元组(三个字节的组合)上创建倒排索引来工作,这允许它快速将候选集缩小到一个非常小的列表,而不是线性扫描每个条目。

plocate得名于激发了它灵感的倒排索引,旨在代替mlocate。虽然它仍然可以updatedb用来创建它的数据库,plocate也可以使用该plocate-build实用程序来创建索引。

与mlocate不同,当搜索多个字符串时,plocate只返回匹配所有搜索字符串的文件,而不是任何匹配一个字符串的文件。

使用 Plocate 应该可以实现更快的定位实现,因为它利用 liburing 来利用 IO_uring 和 libzstd 来实现更快的 I/O 和更新数据库的压缩。

为了显示该plocate命令的速度,开发人员在该工具的主页上展示了此基准测试,其中plocate能够在几毫秒内找到 2700 万个文件中的 2 个:

该工具已经得到快速发展。例如,Fedora 36 计划将 plocate 其locate 用作在文件系统上查找文件的命令的新提供者 。

安装

Debian 11 Bullseye 及更新版本、Debian 10 Buster 向后移植、Ubuntu 21.04、21.10 及更新版本: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install plocate 

Arch Linux 及其衍生产品: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo pacman -S plocate 

Fedora: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo dnf install plocate 

如何使用plocate

现在您可以开始使用plocate。首先你需要创建它的数据库(文件索引): 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo updatedb 

plocate查找文件的触发命令非常简单明了。例如,要搜索名为的文件, linuxmi.com.py 请键入: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ plocate linuxmi.com.py 

如果您找不到某些文件,则可能有两个罪魁祸首:

1. 首先,检查数据库最近是否有更新。大多数用户会想要使用 plocate 的updatedb.

有一个服务和一个定时器来定期更新数据库。您可以启用它,它会自动触发服务: 

  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable plocate-updatedb.timer  
  2. linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl start plocate-updatedb.timer  

2. 文件未显示的另一个原因通常是权限。检查您是否可以以 root 身份找到这些文件,如果可以,问题很可能是您没有从根目录开始一直访问该目录的权限。

 【编辑推荐】

 

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2014-07-25 11:45:29

Linuxlocate命令

2009-08-04 08:44:56

linux find命linux find查找文件命令

2018-11-19 10:30:39

du命令Linux

2018-01-08 08:28:44

Linux命令

2009-09-11 08:39:33

2012-03-14 14:25:57

2019-04-03 14:03:58

Linux命令运行

2017-05-24 11:44:17

Linux命令

2022-03-01 07:37:30

MySQL场景框架

2021-09-28 09:00:00

开发JavaScript存储

2020-12-07 10:48:31

Linuxls命令stat命令

2022-04-20 12:17:50

命令Batcat

2023-03-20 11:36:28

Linux命令

2022-04-25 10:04:56

df命令Linux

2014-08-20 11:17:03

2022-10-08 08:04:47

FindLinuxLocate

2021-01-25 08:00:00

Linux系统数据

2013-12-09 11:06:47

2021-06-28 11:17:14

CoutPrintf接口

2016-08-01 15:06:28

混合SDN
点赞
收藏

51CTO技术栈公众号