每天一個linux命令–whereis(2)

habits發表於2017-09-01

whereis


whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案(引數-b)man說明檔案(引數-m)原始碼檔案(引數-s)。如果省略引數,則返回所有資訊。
和find相比,whereis查詢的速度非常快,這是因為linux系統會將系統內的所有檔案都記錄在一個資料庫檔案中,當使用whereis和下面即將介紹的locate時,會從資料庫中查詢資料,而不是像find命令那樣,通過遍歷硬碟來查詢,效率自然會很高。
但是該資料庫檔案並不是實時更新,預設情況下時一星期更新一次,因此,我們在用whereis和locate 查詢檔案時,有時會找到已經被刪除的資料,或者剛剛建立檔案,卻無法查詢到,原因就是因為資料庫檔案沒有被更新。

1.命令格式:

whereis [-bmsu] [BMS 目錄名 -f ] 檔名

2.命令功能:

whereis命令是定位可執行檔案、原始碼檔案、幫助檔案在檔案系統中的位置。這些檔案的屬性應屬於原始程式碼,二進位制檔案,或是幫助檔案。whereis 程式還具有搜尋原始碼、指定備用搜尋路徑和搜尋不尋常項的能力。

3.命令引數:

-b 定位可執行檔案。
-m 定位幫助檔案。
-s 定位原始碼檔案。
-u 搜尋預設路徑下除可執行檔案、原始碼檔案、幫助檔案以外的其它檔案。
-B 指定搜尋可執行檔案的路徑。
-M 指定搜尋幫助檔案的路徑。
-S 指定搜尋原始碼檔案的路徑。

4.使用例項:

例1:將和**檔案相關的檔案都查詢出來

命令:
whereis svn
輸出:

zgy@NLP ~ $ whereis tomcat
tomcat:
zgy@NLP ~ $ whereis svn
svn: /usr/bin/svn /usr/bin/X11/svn /usr/share/man/man1/svn.1.gz
zgy@NLP ~ $ 

說明:
tomcat沒安裝,找不出來,svn安裝找出了很多相關檔案

例2:只將二進位制檔案 查詢出來

命令:
whereis -b svn
輸出:

zgy@NLP ~ $ whereis -b svn
svn: /usr/bin/svn /usr/bin/X11/svn
zgy@NLP ~ $ whereis -m svn
svn: /usr/share/man/man1/svn.1.gz
zgy@NLP ~ $ whereis -s svn
svn:
zgy@NLP ~ $ 

說明:
whereis -m svn 查出說明文件路徑,whereis -s svn 找source原始檔。


轉自http://www.cnblogs.com/peida/archive/2012/11/09/2761928.html



相關文章