每天一個linux命(ming)令(ling)(17):whereis 命(ming)令(ling)
whereis命(ming)令只能用(yong)于程(cheng)序(xu)名(ming)的搜索,而且只搜索二進制(zhi)文(wen)件(參(can)(can)數-b)、man說明(ming)文(wen)件(參(can)(can)數-m)和源代碼文(wen)件(參(can)(can)數-s)。如(ru)果省略參(can)(can)數,則返回所有信息。
和find相(xiang)比,whereis查找(zhao)的(de)速度(du)非常快(kuai),這(zhe)是因為linux系統會將 系統內(nei)的(de)所有文件都記錄在一個(ge)數據(ju)(ju)庫(ku)文件中(zhong),當使用whereis和下面即將介紹的(de)locate時,會從(cong)數據(ju)(ju)庫(ku)中(zhong)查找(zhao)數據(ju)(ju),而不是像find命令(ling)那(nei)樣,通 過(guo)遍(bian)歷硬(ying)盤來查找(zhao),效率自然(ran)會很高。
但(dan)是該數據庫(ku)文件(jian)并不是實時更新,默認情況下時一(yi)星期更新一(yi)次,因(yin)此,我們在用whereis和locate 查找(zhao)(zhao)文件(jian)時,有(you)時會找(zhao)(zhao)到(dao)已經被刪除的(de)數據,或者剛剛建(jian)立文件(jian),卻(que)無法查找(zhao)(zhao)到(dao),原因(yin)就是因(yin)為數據庫(ku)文件(jian)沒有(you)被更新。
1.命令格式:
whereis [-bmsu] [BMS 目(mu)錄名 -f ] 文件名
2.命令(ling)功能:
whereis命令是定(ding)(ding)位可執(zhi)行文(wen)(wen)件(jian)、源代(dai)碼(ma)文(wen)(wen)件(jian)、幫助文(wen)(wen)件(jian)在文(wen)(wen)件(jian)系統中的位置(zhi)。這(zhe)些(xie)文(wen)(wen)件(jian)的屬性應屬于原(yuan)始代(dai)碼(ma),二進制文(wen)(wen)件(jian),或是幫助文(wen)(wen)件(jian)。whereis 程(cheng)序還(huan)具有搜(sou)索源代(dai)碼(ma)、指定(ding)(ding)備用搜(sou)索路徑和搜(sou)索不尋常項的能力。
3.命令參數:
-b 定位可執行(xing)文件。
-m 定位(wei)幫助文件。
-s 定位源代碼文件。
-u 搜索(suo)默認(ren)路徑下除可執行文件、源代碼文件、幫(bang)助文件以(yi)外的其它文件。
-B 指定搜(sou)索可執行(xing)文件的路(lu)徑。
-M 指定搜索幫助(zhu)文(wen)件的路(lu)徑。
-S 指定(ding)搜(sou)索源代碼(ma)文件的路徑。
4.使用實例:
實例1:將和**文件相(xiang)關(guan)的文件都查找出來
命(ming)令:
whereis svn
輸出:
[root@localhost ~]# whereis tomcat
tomcat:
[root@localhost ~]# whereis svn
svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
說明:
tomcat沒安裝,找(zhao)(zhao)不出來,svn安裝找(zhao)(zhao)出了很多相(xiang)關文件
實例2:只將二進(jin)制文(wen)件 查找(zhao)出來
命令:
whereis -b svn
輸出:
[root@localhost ~]# whereis -b svn
svn: /usr/bin/svn /usr/local/svn
[root@localhost ~]# whereis -m svn
svn: /usr/share/man/man1/svn.1.gz
[root@localhost ~]# whereis -s svn
svn:
[root@localhost ~]#
說明:
whereis -m svn 查(cha)出說明(ming)文檔路徑,whereis -s svn 找source源文件。
關注 熵減黑客 ,一起學習成長
