出自 Arch Linux 中文维基

這篇文章的某些內容需要擴充。

原因: Cover plocate and potentially other alternatives. (在 Talk:Locate 中討論)

locate 是一種常見的 Unix 工具,用於按名稱快速查找文件。它通過搜索預先構建的資料庫文件來提高查找工具的速度,而不是直接搜索文件系統。這種方法的缺點是:自構建資料庫文件以來所做的更改無法被 locate 檢測到。有計劃的資料庫更新,可以最大程度地減少此問題。

mlocate (Merging Locate) 是一個更安全的locate 版本,它只顯示用戶可訪問的文件。

plocate (Posting Locate) 是一個基於posting lists的定位工具,它提前使用 mlocate 的資料庫,並從中製作更快(更小)的索引。

安裝

安裝 mlocate 或者 plocate 軟體包。

雖然 GNU findutils 也包含一個 locate 實現,但 Arch 的 findutils 軟體包並不包含。

用法

在使用 locate(1) 之前,需要先創建資料庫,這可以通過 updatedb(8) 命令來完成,顧名思義,它可以更新資料庫。

mlocate 包含一個 updatedb.timer 單元,而 plocate 包含一個 plocate-updatedb.timer 單元。mlocate 會在安裝時啟用定時器,如果你想在重啟前使用它,可以手動啟動它。你也可以隨時以 root 身份手動運行 updatedb

為了節省時間,updatedb 可以(在默認情況下)通過編輯 /etc/updatedb.conf 來忽略某些文件系統和路徑。updatedb.conf(5) 描述了該文件的語義。值得注意的是,默認配置 (PRUNEPATHS) 忽略的路徑包括 /media/mnt,因此 locate 可能無法發現外部設備上的文件。

參見