不要 locate 命令,Linux plocate 才是更好的選擇
plocate查找系統(tǒng)上與給定模式匹配的所有文件?;趌ocate,在更小的索引上提供更快的搜索。
當您需要在 Linux 中搜索某些文件時,您通??赡軙褂胒ind或locate命令。不過,現(xiàn)在您有了一個名為plocate的命令。
plocate 通過在搜索字符串中的三元組(三個字節(jié)的組合)上創(chuàng)建倒排索引來工作,這允許它快速將候選集縮小到一個非常小的列表,而不是線性掃描每個條目。
plocate得名于激發(fā)了它靈感的倒排索引,旨在代替mlocate。雖然它仍然可以updatedb用來創(chuàng)建它的數(shù)據(jù)庫,plocate也可以使用該plocate-build實用程序來創(chuàng)建索引。
與mlocate不同,當搜索多個字符串時,plocate只返回匹配所有搜索字符串的文件,而不是任何匹配一個字符串的文件。
使用 Plocate 應(yīng)該可以實現(xiàn)更快的定位實現(xiàn),因為它利用 liburing 來利用 IO_uring 和 libzstd 來實現(xiàn)更快的 I/O 和更新數(shù)據(jù)庫的壓縮。
為了顯示該plocate命令的速度,開發(fā)人員在該工具的主頁上展示了此基準測試,其中plocate能夠在幾毫秒內(nèi)找到 2700 萬個文件中的 2 個:
該工具已經(jīng)得到快速發(fā)展。例如,F(xiàn)edora 36 計劃將 plocate 其locate 用作在文件系統(tǒng)上查找文件的命令的新提供者 。
安裝
Debian 11 Bullseye 及更新版本、Debian 10 Buster 向后移植、Ubuntu 21.04、21.10 及更新版本:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install plocate
Arch Linux 及其衍生產(chǎn)品:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo pacman -S plocate
Fedora:
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo dnf install plocate
如何使用plocate
現(xiàn)在您可以開始使用plocate。首先你需要創(chuàng)建它的數(shù)據(jù)庫(文件索引):
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo updatedb
plocate查找文件的觸發(fā)命令非常簡單明了。例如,要搜索名為的文件, linuxmi.com.py 請鍵入:
- linuxmi@linuxmi:~/www.linuxmi.com$ plocate linuxmi.com.py
如果您找不到某些文件,則可能有兩個罪魁禍首:
1. 首先,檢查數(shù)據(jù)庫最近是否有更新。大多數(shù)用戶會想要使用 plocate 的updatedb.
有一個服務(wù)和一個定時器來定期更新數(shù)據(jù)庫。您可以啟用它,它會自動觸發(fā)服務(wù):
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable plocate-updatedb.timer
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl start plocate-updatedb.timer
2. 文件未顯示的另一個原因通常是權(quán)限。檢查您是否可以以 root 身份找到這些文件,如果可以,問題很可能是您沒有從根目錄開始一直訪問該目錄的權(quán)限。
【編輯推薦】