locate
是一種常見的 Unix 工具,用於按名稱快速查找文件。它通過搜索預先構建的資料庫文件來提高查找工具的速度,而不是直接搜索文件系統。這種方法的缺點是:自構建資料庫文件以來所做的更改無法被 locate
檢測到。有計劃的資料庫更新,可以最大程度地減少此問題。
mlocate (Merging Locate) 是一個更安全的locate 版本,它只顯示用戶可訪問的文件。
plocate (Posting Locate) 是一個基於posting lists的定位工具,它提前使用 mlocate 的資料庫,並從中製作更快(更小)的索引。
安裝
雖然 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 可能無法發現外部設備上的文件。