locate 命令用於檢視檔案。
如果沒有指定 ——regex,匹配模式可以包含萬用字元(globbing characters)。如果模式不包含萬用字元,則模式等價於*pattern*
。
作用類似於 find 命令,但是比 find 要快,因為 locate 不像 find 那樣全磁碟搜尋,而是從由 updatedb 命令維護的資料庫(一般為 /var/lib/mlocate/mlocate.db)中進行查詢。預設情況下,locate 不會檢查從資料庫中找到的檔案是否仍然存在,也無法找到在資料庫最近更新之後建立的檔案,因為資料庫的更新有時延。為了避免這種情況,可以在使用 locate 之前,先使用 updatedb 命令手動更新資料庫。
locate [option]... pattern...
-a, --all
只顯示匹配所有模式的條目
-b, --basename
只匹配檔案的基本名。作用與選項 --wholename 相反
-c, --count
只輸出符合匹配模式的檔案的數量
-d, --database dbpath
將預設資料庫替換為 dbpath。該選項可出現多次
-e, --existing
只列印當前存在的檔案
-l, --follow
當檢查檔案是否存在時(如果選項 --existing 指定時),檢查符號鏈結的目標檔案(預設,相反的選項是 --nofollow)
-h, --help
顯示幫助資訊並退出
-i, --ignore-case
比較時忽略大小寫
-l, --limit, -n limit
限制成功匹配的檔案數為 limit
-p, --nofollow, -h
當檢查檔案是否存在時(如果選項 --existing 指定時),不檢查符號鏈結的目標檔案。作用與 --follow 相反
-0, --null
在輸出時使用 ascii nul 字元分隔條目,而不是將每個條目寫在單獨的行上。此選項是為了與 gnu xargs(1)的 --null 選項配合使用而設計的
-s, --statistics
不搜尋檔案,而是顯示每個資料庫的統計資訊
-q, --quiet
不報告關於讀取和處理資料庫時遇到的錯誤的訊息
-r, --regexp regexp
使用正規表示式 regexp 進行搜尋。該選項可出現多次
--regex
將所有模式解釋為擴充套件的正規表示式
-v, --version
輸出 locate 的版本和許可資訊並退出
-w, --wholename
僅將整個路徑名與指定的模式匹配(預設)。如果只匹配檔案基本名,可使用選項 --basename
(1)查詢檔案名為 name 的檔案。
locate -b '\name'
反斜槓 \ 阻止了隱式地將 name 轉為 name。
(2)查詢檔案名包含某個字串的相關檔案。
locate -b
/usr/sbin/ifconfig
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/man8/ifconfig_selinux.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz
/usr/share/selinux/devel/html/ifconfig.html
/usr/share/zsh/5.0.2/functions/_ifconfig
(3)查詢配置檔案 mlocate.db。
locate mlocate.db
/usr/share/man/man5/mlocate.db.5.gz
/var/lib/mlocate/mlocate.db
(4)顯示資料庫的統計資訊。
locate -s
database /var/lib/mlocate/mlocate.db:
21,626 directories
230,452 files
15,475,136 bytes in file names
5,711,659 bytes used to store database
(5)搜尋基本正規表示式 regexp 來代替模式。查詢名稱以 mlocate 開頭,以 db 結尾的檔案。
locate -b -r ^mlocate.*db$
/var/lib/mlocate/mlocate.db
(6)查詢最近變動的檔案。使用 locate 命令查不到最近變動過的檔案。為了避免這種情況,可以在使用 locate 之前,先使用 updatedb 命令,手動更新資料庫。
# 無法找到新建的檔案
touch new_file
locate new_file
# 手動更新資料庫後可以查到新建的檔案
updatedb
locate new_file
/root/new_file
[1] locate manual
[2] glob(7)
linux命令(18) locate 命令
locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立乙個包括系統內所有檔名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的 distribution 之中,資料庫的建立都被放在 c rontab 中自動執行。1 命令格式 loca...
Linux命令之locate命令詳解
locate 讓使用者可以很快的搜尋檔案系統內是否有指定的檔案。其方法是先建立乙個包括系統內所有檔名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的 distribution 之中,資料庫的建立都被放在 crontab 中自動執行。1.命令格式 locate...
linux命令(37) locate命令
1 命令格式 locate 選擇引數 樣式 2 命令功能 locate命令可以在搜尋資料庫時快速找到檔案,資料庫由updatedb程式來更新,updatedb是由cron daemon週期性建立的,locate命令在搜尋資料庫時比由整個由硬碟資料來搜尋資料來得快,但較差勁的是locate所找到的檔案...