1.1 簡述
locate
命令用于查找文件或目錄。locate命令要比find -name
快得多,原因在于它不搜索具體目錄,而是搜索一個數據庫/var/lib/mlocate/mlocate.db。這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,并且每天自動更新一次。因此,我們在用whereis 和 locate查找文件時,有時會找到已經被刪除的數據;或者剛剛建立的文件,卻無法查找到,原因就是因為數據庫文件沒有被更新。為了避免這種情況,可以在使用locate之前,先使用updatedb
命令,手動更新數據庫。整個locate工作其實是由4部分組成的:
/usr/bin/updatedb: 主要用來更新數據庫,通過crontab自動完成的
/usr/bin/locate: 查詢文件位置
/etc/updatedb.conf: updatedb的配置文件
/var/lib/mlocate/mlocate.db: 存放文件信息的文件
locate
會讀取由updatedb準備好的一個或多個數據庫,然后將滿足匹配PATTERN
的文件寫到標準輸出,每行一個文件名。假如并未指定--regex
選項,則PATTERN
可以包含通配符。假如PATTERN
中并未包含任何通配符,則locate命令以*PATTERN*
模式進行查找。
默認情況下,locate命令并不會檢查數據庫中的文件是否仍然存在,也不會報告在上一次更新數據庫之后產生的文件。
locate[OPTION]...[PATTERN]...
-A,--all打印所有匹配PATTERNs的文件-b,--basename只名稱與PATTERNs匹配的文件(例如/test/test.txt,則basename為test.txt)-c,--count只打印匹配到的文件數目,而不是文件名本身-d,--databaseDBPATH用DBPATH來代替默認的數據庫。DBPATH是一個以:(冒號)分割的數據庫名稱列表-e,--existing只打印在調用locate時存在的文件-L,--follow當和-e選項一起使用時,如果該文件是一個軟鏈接文件,則會獲取到該軟鏈接對應的實際文件(此為locate命令默認行文)。-h,--help打印幫助文檔信息-i,--ignore-case當進行文件模式匹配時,忽略大小寫-l,--limit,-nLIMIT當成功匹配到LIMIT數量的文件時,退出-P,--nofollow,-H當和-e選項一起使用時,如果該文件是一個軟鏈接文件,此時不跟隨鏈接的實際文件-0,--null輸出時以ASCIINUL作為分隔符-S,--statistics獲得每一個搜索數據庫的統計信息-q,--quiet當在讀取和處理數據庫時,遇到錯誤也不打印相關信息-r,--regexpREGEXP查找一個基本的模式匹配REGEXP。此選項情況下,不能出現PATTERNs-V,--version打印locate的版本信息和license信息-w,--wholename匹配完整路徑名(默認)
例如查找一個文件名稱為NAME(并不是*NAME*)
的文件,可以使用如下:
#locate-b'\NAME'
應為\
本身是一個通配字符,因此這里會禁止隱式的轉化為*NAME*
.
1) 搜索目錄下所有以sh開頭的文件
#locate/etc/sh/etc/shadow/etc/shadow-/etc/shells
2) 包含某個字符串的相關文件
#locatepasswd/etc/passwd/etc/passwd-/etc/pam.d/passwd/etc/security/opasswd/usr/bin/gpasswd/usr/bin/grub2-mkpasswd-pbkdf2/usr/bin/kpasswd/usr/bin/lppasswd/usr/bin/passwd/usr/bin/smbpasswd....
3) 限定顯示數量
如果顯示的內容過多,可以使用-n
選項來限定顯示數量。
#locate-n5passwd/etc/passwd/etc/passwd-/etc/pam.d/passwd/etc/security/opasswd/usr/bin/gpasswd
4) 使用正則表達式
當需要查找符合特定規則的信息時,可以使用-r
選項匹配相應的正則表達式
//查找以/var/lib/rpm開頭的文件#locate-r^/var/lib/rpm/var/lib/rpm/var/lib/rpm-state/var/lib/rpm/.dbenv.lock/var/lib/rpm/.rpm.lock....//查找以zip結尾的文件#locate-rzip$/usr/bin/funzip/usr/bin/gpg-zip/usr/bin/gunzip/usr/bin/gzip/usr/bin/mzip/usr/bin/unzip/usr/bin/zip/usr/lib64/libreoffice/share/config/images.zip/usr/lib64/libreoffice/share/config/images_crystal.zip....
5) 判斷某一目錄下的文件是否存在(軟鏈接)
#ls../lib|whilereadline;doif[-f../lib/$line];thentemp="$(locate"$line")";if[-n"$temp"];thenecho$line;fifidone
PRUNE_BIND_MOUNTS="yes"PRUNEFS="9pafsanon_inodefsautoautofsbdevbinfmt_misccgroupcifscodaconfigfscpusetdebugfsdevptsecryptfsexofsfusefuse.sshfsfusectlgfsgfs2gpfshugetlbfsinotifyfsiso9660jffs2lustremqueuencpfsnfsnfs4nfsdpipefsprocramfsrootfsrpc_pipefssecurityfsselinuxfssfssockfssysfstmpfsubifsudfusbfs"PRUNENAMES=".git.hg.svn"PRUNEPATHS="/afs/media/mnt/net/sfs/tmp/udev/var/cache/ccache/var/lib/yum/yumdb/var/spool/cups/var/spool/squid/var/tmp"
PRUNE_BIND_MOUNTS
: 表示是否進行限制搜索
PRUNEFS
: 表示排除檢索的文件系統類型
PRUNENAME
: 表示排除檢索的文件類型
PRUNEPATHS
: 表示排除檢索的文件目錄
感謝大家的閱讀,以上就是“Linux系統locate命令的使用方法是什么”的全部內容了,學會的朋友趕緊操作起來吧。相信本站小編一定會給大家帶來更優質的文章。謝謝大家對本站網站的支持!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖片)在生活中,很多人都不知道無錫有哪些歷史名人是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的無錫有哪些歷史名人相關的一些知識,我們一起來學習下吧!無錫有以下歷史名人:1、顧憲成:明代思想家,東林黨領袖。2、泰伯:吳國第一代君主,東吳文化的宗祖。3、仲雍:吳國第二代君主,吳地和常熟的始祖。3、季簡:周代吳國的第三任君主。4、叔達:西周時期吳國第四任國君。5、周章:秦末農民起義軍將...
#標題創作挑戰#從2009年開始,安徽衛視引進了《天使之爭》、《愛在路上》、《一個承諾》、《丘比特的陷阱》、《鉆石之戰》、《愛的漣漪》、《愛的被告》、《旋轉的愛》、《真愛無價》等經典泰劇。,在國內引起了追劇熱潮,培養了大批忠實的泰劇粉絲。近年來,泰國腐劇發展迅速,但傳統泰劇在中國的影響力卻大不如前。不過最近有一部泰劇,是《虎玫瑰先生》?!痘⒚倒逑壬分约t,不是憑借精良的制作和精彩的劇情,而是先...
微信開放社區宣布2021年5月20日之后不再提供“小程序開啟app技術服務”(圖片來源于互聯網)(圖片來自網絡)微信方面表示,微信小程序為開發者提供打開app的技術服務,希望通過開發者的合理應用,能夠為微信用戶提供更好的體驗。平臺在鼓勵小程序提供優質內容和服務的同時,也非常注重用戶在小程序中的流暢體驗。最近收到大量用戶投訴。在小程序使用過程中,正常使用進程被屏蔽,被引導跳轉到app,嚴重影響了小程...