新聞中心
locate(locate) 命令用來查找文件或目錄。 locate命令要比find -name快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫/var/lib/mlocate/mlocate.db 。這個數(shù)據(jù)庫中含有本地所有文件信息。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫,并且每天自動更新一次,因此,我們在用whereis和locate 查找文件時,有時會找到已經(jīng)被刪除的數(shù)據(jù),或者剛剛建立文件,卻無法查找到,原因就是因為數(shù)據(jù)庫文件沒有被更新

專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)丘北免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
創(chuàng)新互聯(lián)建站于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元施秉做網(wǎng)站,已為上家服務,為施秉各地企業(yè)和個人服務,聯(lián)系電話:18980820575
安裝 locate
根據(jù)發(fā)行版本的情況以及系統(tǒng)的配置方式,可以在 Linux 系統(tǒng)上預安裝定位包,也可以不預先安裝。
要檢查系統(tǒng)上是否 locate 安裝了該實用程序,請打開終端,鍵入 locate 并按 Enter 。如果安裝了包,系統(tǒng)將顯示 locate: no pattern to search for specified ,否則你會看到類似的東西 locate command not found 。
如果 locate 未安裝,您可以使用發(fā)行版的軟件包管理器輕松安裝它。
在 Ubuntu 和 Debian 上安裝 locate
sudo apt update
sudo apt install mlocate
在 CentOS 和 Fedora 上安裝 locate
sudo yum install mlocate
locate 如何工作
locate 命令通過 updatedb 命令生成的數(shù)據(jù)庫文件搜索給定模式。找到的結果顯示在屏幕上,每行一個。
在 mlocate 軟件包安裝期間,會創(chuàng)建一個每 24 小時運行一次 updatedb 命令的 cron 作業(yè)。這可確保定期更新數(shù)據(jù)庫。有關 cron 作業(yè)的更多信息,請檢查該 /etc/cron.daily/mlocate 文件。
可以通過以 root 身份或使用 sudo 權限的用戶運行 updatedb 命令來手動更新數(shù)據(jù)庫:
sudo updatedb
更新過程將需要一些時間,具體取決于文件和目錄的數(shù)量以及系統(tǒng)的速度。
數(shù)據(jù)庫更新后才創(chuàng)建的文件不會顯示在定位結果中。
與 find 搜索文件系統(tǒng)的更強大的命令相比, locate 操作速度更快但缺少許多功能,并且只能通過文件名進行搜索。
如何使用 locate 命令
該 locate 命令的語法如下:
locate [OPTION] PATTERN...
在最基本的形式中,當沒有任何選項時, locate 命令將打印與搜索模式匹配且用戶具有讀取權限的所有文件和目錄的絕對路徑。
例如,要搜索名為的文件, .bashrc 您可以鍵入:
locate .bashrc
輸出將包含名稱中包含字符串的所有文件 .bashrc 的名稱:
/etc/bash.bashrc
/etc/skel/.bashrc
/home/linuxidc/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
該 /root/.bashrc 文件將不會顯示,因為我們使用作為普通用戶運行該命令的,該用戶對該 /root 目錄沒有訪問權限。
如果結果列表很長,為了更好的可讀性,您可以將輸出傳遞給 less 命令:
locate .bashrc | less
該 locate 命令還接受包含通配符(如通配符)的模式 * 。當模式不包含通配符是,將要搜索 PATTERN ,這就是為什么在前面的示例中顯示了名稱中包含搜索模式的所有文件。
通配符是用于表示零個,一個或多個字符的符號。例如,要搜索 .md 系統(tǒng)上的所有文件,您將使用:
locate *.md
要限制搜索結果的數(shù)量,請使用 -n 選項,后跟要顯示的結果數(shù)。例如,以下命令將搜索所有 .py 文件并僅顯示 10 個結果:
locate -n 10 *.py
默認情況下, locate 執(zhí)行區(qū)分大小寫的搜索。 -i(–ignore-case) 選項告訴 locate 在搜索時忽略大小寫。
locate -i readme.md
/home/linuxidc/p1/readme.md
/home/linuxidc/p2/README.md
/home/linuxidc/p3/ReadMe.md
要顯示所有匹配條目的計數(shù),請使用 -c(–count) 選項。以下命令將返回其名稱中包含 .bashrc 的所有文件的數(shù)量:
locate -c .bashrc
6
默認情況下, locate 不檢查找到的文件是否仍存在于文件系統(tǒng)上。如果在最新數(shù)據(jù)庫更新后刪除文件,如果文件與搜索模式匹配,則它將包含在搜索結果中。
要僅顯示 locate 運行時存在的文件的名稱,請使用 -e(–existing) 選項。例如,以下內(nèi)容僅返回現(xiàn)有 .json 文件:
locate -e *.json
如果您需要運行更復雜的搜索,可以使用 -r(–regexp) 選項,該選項允許您使用基本正則表達式而不是模式進行搜索??梢远啻沃付ù诉x項。 例如,要在系統(tǒng)中搜索所有 .mp4 與 .avi 文件,而忽略你可以運行情況:
locate --regex -i "(\.mp4|\.avi)"
結論
該 locate 命令在文件系統(tǒng)中搜索名稱與給定模式匹配的文件和目錄。命令語法易于記憶,結果幾乎立即顯示。
在終端中運行 man locate 可以查看 locate 命令的所有可用選項的更多信息。
當前文章:Linux中l(wèi)ocate命令的安裝和使用
網(wǎng)頁地址:http://fisionsoft.com.cn/article/dpgechc.html


咨詢
建站咨詢
