每天一(yi)個(ge)linux命令(ling)(18):locate 命令(ling)
locate 讓使用(yong)者(zhe)可以很快速的搜(sou)尋(xun)檔(dang)案系統內是否(fou)有指定(ding)的檔(dang)案。其方法(fa)是先建立一(yi)個包(bao)括系統內所(suo)有檔(dang)案名(ming)稱及路(lu)徑的數(shu)(shu)據庫(ku)(ku)(ku),之(zhi)后當尋(xun)找時就只需(xu)查詢這(zhe)個數(shu)(shu)據庫(ku)(ku)(ku),而不必實際深入(ru)檔(dang)案系統之(zhi)中了。在(zai)(zai)一(yi)般的 distribution 之(zhi)中,數(shu)(shu)據庫(ku)(ku)(ku)的建立都被放在(zai)(zai) crontab 中自動(dong)執行。
1.命令格式:
Locate [選擇參數(shu)] [樣式]
2.命令(ling)功(gong)能:
locate命令(ling)(ling)可(ke)以在搜(sou)(sou)尋(xun)(xun)數(shu)據(ju)(ju)庫(ku)時快速找到檔(dang)案,數(shu)據(ju)(ju)庫(ku)由updatedb程序來(lai)更(geng)新,updatedb是(shi)由cron daemon周期性(xing)建立(li)的(de),locate命令(ling)(ling)在搜(sou)(sou)尋(xun)(xun)數(shu)據(ju)(ju)庫(ku)時比由整個(ge)由硬(ying)盤(pan)資(zi)(zi)料(liao)來(lai)搜(sou)(sou)尋(xun)(xun)資(zi)(zi)料(liao)來(lai)得快,但較差(cha)勁的(de)是(shi)locate所(suo)找到的(de)檔(dang)案若是(shi)最近(jin)才建立(li)或 剛(gang)更(geng)名的(de),可(ke)能會找不(bu)到,在內定值中,updatedb每天(tian)會跑(pao)一次,可(ke)以由修(xiu)改crontab來(lai)更(geng)新設(she)定值。(etc/crontab)
locate指(zhi)定(ding)用(yong)在搜尋符合條(tiao)件的(de)(de)檔(dang)(dang)案,它會去儲(chu)存檔(dang)(dang)案與目(mu)(mu)(mu)(mu)錄(lu)名稱(cheng)的(de)(de)數據(ju)庫(ku)內,尋找(zhao)合乎(hu)范(fan)本(ben)樣(yang)式條(tiao)件的(de)(de)檔(dang)(dang)案或目(mu)(mu)(mu)(mu)錄(lu)錄(lu),可以使用(yong)特殊字元(如”*” 或”?”等)來指(zhi)定(ding)范(fan)本(ben)樣(yang)式,如指(zhi)定(ding)范(fan)本(ben)為(wei)(wei)(wei)kcpa*ner, locate會找(zhao)出(chu)所有(you)起(qi)始字串為(wei)(wei)(wei)kcpa且結(jie)尾為(wei)(wei)(wei)ner的(de)(de)檔(dang)(dang)案或目(mu)(mu)(mu)(mu)錄(lu),如名稱(cheng)為(wei)(wei)(wei)kcpartner若目(mu)(mu)(mu)(mu)錄(lu)錄(lu)名稱(cheng)為(wei)(wei)(wei)kcpa_ner則會列出(chu)該目(mu)(mu)(mu)(mu)錄(lu)下包括 子目(mu)(mu)(mu)(mu)錄(lu)在內的(de)(de)所有(you)檔(dang)(dang)案。
locate指令和find找尋(xun)檔案(an)的功能類似,但locate是(shi)透過update程序將硬盤中的所有檔案(an)和目錄(lu)資料先建立一個索(suo)引(yin)數據(ju)庫(ku),在 執行loacte時直(zhi)(zhi)接找該索(suo)引(yin),查詢速度會(hui)較快,索(suo)引(yin)數據(ju)庫(ku)一般(ban)是(shi)由操作(zuo)系統(tong)管理(li),但也(ye)可以直(zhi)(zhi)接下達update強(qiang)迫(po)系統(tong)立即修(xiu)改(gai)索(suo)引(yin)數據(ju)庫(ku)。
3.命令參數(shu):
-e 將排除在尋找的范圍之(zhi)外(wai)。
-1 如果(guo) 是 1.則啟(qi)動安(an)(an)全模(mo)式。在安(an)(an)全模(mo)式下,使用者不會看(kan)(kan)到權限無法看(kan)(kan)到 的(de)檔案。這(zhe)會始速(su)度減慢(man),因為 locate 必須至實際的(de)檔案系統中(zhong)取得(de)檔案的(de) 權限資料。
-f 將特(te)定(ding)的(de)檔(dang)案(an)系統(tong)排除(chu)在(zai)外,例如(ru)我們沒有到(dao)理要把(ba) proc 檔(dang)案(an)系統(tong)中的(de)檔(dang)案(an) 放在資(zi)料庫(ku)中。
-q 安靜(jing)模式,不會顯示(shi)任何錯誤訊息。
-n 至多顯示(shi) n個輸出。
-r 使(shi)用正規運(yun)算式 做尋找的條件。
-o 指定資料(liao)庫存的名(ming)稱(cheng)。
-d 指定資料(liao)庫的路徑
-h 顯示輔助(zhu)訊(xun)息
-V 顯示程式的版本訊息
4.使用(yong)實例:
實例1:查找(zhao)和pwd相關的所有文件
命令:
locate pwd
輸出:
peida-VirtualBox ~ # locate pwd
/bin/pwd
/etc/.pwd.lock
/sbin/unix_chkpwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.pyc
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.pyc
/usr/lib/syslinux/pwd.c32
/usr/share/help/C/empathy/irc-join-pwd.page
/usr/share/help/ca/empathy/irc-join-pwd.page
/usr/share/help/cs/empathy/irc-join-pwd.page
/usr/share/help/de/empathy/irc-join-pwd.page
/usr/share/help/el/empathy/irc-join-pwd.page
實例(li)2: 搜索etc目(mu)錄下所有以sh開頭的文件
命令:
locate /etc/sh
輸出(chu):
peida-VirtualBox ~ # locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
peida-VirtualBox ~ #
實例3:搜索etc目錄下,所(suo)有以m開頭的(de)文件
命令(ling):
locate /etc/m
輸出(chu):
peida-VirtualBox ~ # locate /etc/m
/etc/magic
/etc/magic.mime
/etc/mailcap
/etc/mailcap.order
/etc/manpath.config
/etc/mate-settings-daemon
關注 熵減黑客 ,一起學習成長
