1. 程式人生 > 其它 >Linux檔案查詢常用命令(下)

Linux檔案查詢常用命令(下)

Linux常見查詢命令locate,which,whereis,grep

其他檔案查詢命令:

1.locate:在檔案資料庫中查詢檔案

  locate 檔名(直接跟上檔名就可以查詢檔案)

  locate struggle:查詢檔案struggle

  在Linux系統中,有一個定期維護的檔案資料庫,系統裡所有的檔案都會被定期收錄到檔案資料庫中,使用locate查詢檔案時,locate直接查詢檔案資料庫,因此查詢的速度就很快。

  可以使用 locate locate檢視檔案資料庫。同時locate還有幾個缺點,當新建一個檔案時,使用locate命令查不到該檔案,原因是系統還沒有更新檔案資料庫,因此找不到該新建檔案,你可以使用update手動更新。其次,當檔案是在/tmp目錄下建立的,使用locate命令也查詢不到新建的檔案,原因是:存放臨時檔案的目錄/tmp並不在檔案資料庫的收錄範圍內,因此使用locate是不能查詢到該目錄下/tmp新建的檔案的。

  使用locate locate 檢視檔案資料庫

  新建一個檔案,使用locate檢視,在使用update更新檔案資料庫,在使用locate檢視

  在目錄/tmp下建立檔案,使用locat 查詢,發現查詢不了

  使用locate查詢檔案,不區分大小寫 locate -i 檔名(Linux中嚴格區分大小寫)

2.which:搜尋命令所在目錄及其別名資訊

  which 命令

  which是相對更精確的查詢命令,比如查詢的檔案是一個命令(可執行檔案),使用which就可以精準的查詢到該命令的目錄(命令所在位置的據對路徑)。

  在Linux中,命令是以二進位制的檔案儲存的,儲存於bin和sbin下,bin下的命令所有使用者都能執行,而sbin下的命令只能管理員root才能執行。

3.whereis:搜尋命令所在目錄及其幫助文件路徑

  whereis [命令名稱]

4.grep:在檔案中搜尋字串匹配行並顯示

  -i 不區分大小寫

  -v 排除指定字串

grep在檔案內容中進行查詢,把想要查詢的包含關鍵詞的那一行顯示出來。

  使用引數 -i ,查詢時不區分關鍵詞的大小寫

  grep -i 關鍵詞 檔案的據絕對路徑

  grep -i right /root/test/hello.txt

  查詢檔案hello.txt內容中包含right的行並顯示(不區分大小寫)

  排除指定字串

  grep -v today is sunny sunny

  當我們看一個檔案時,若註釋的內容很多,我們只想檢視沒有註釋的內容。既可以用方向查詢的思想 -v 來實現。

  先準備資料:

  grep -v ^# 檔案絕對路徑

  grep -v ^# /root/test/sunny

  ^# 把以#開頭的行排除

  

你可能想把包含#的行去掉,但是這樣是執行失敗的

  如文字內容中的 today is sunny # the weather condition ,若grep -v # sunny執行成功,那麼意味著這一行資料也要被刪除,但實際上,這一行資料對我們是有用的,該行後的資料#the weather condition是對today is sunny的解釋說明,並不意味著這一行資料都是註釋,因此grep -v # sunny是不能執行成功的。

  把引數-i,-v連線起來用

  grep -iv today sunny

  把檔案sunny裡包含today大小寫的關鍵詞排除,並顯示剩餘的內容