天天看點

Linux常用查找檔案方法總結

一、前言

Linux系統提供了多種查找檔案的指令,而且每種查找指令都具有其獨特的優勢,下面詳細總結一下常用的幾個Linux查找指令。

Linux常用查找檔案方法總結

二、which指令

  • 查找類型:二進制檔案;
  • 檢索範圍:PATH環境變量裡面指定的路徑中查找;

通過which指令可以快速傳回某個指定指令的位置資訊。

Linux常用查找檔案方法總結
  • 優點:查找速度快;
  • 缺點:僅支援二進制檔案;

三、whereis指令

  • 查找類型:二進制檔案,man幫助檔案,及源代碼檔案;
  • 檢索範圍:/usr目錄

通過whereis指令可以快速傳回某個指定指令的位置資訊,及其man檔案和源代碼檔案的位置資訊(如果存在的話)。

當然也可以通過參數指定傳回某一類查找結果:

  • -b 僅查找二進制檔案;
  • -m 僅查找man幫助檔案;
  • -s 僅查找源代碼檔案;
Linux常用查找檔案方法總結
  • 優點:查找速度快;
  • 缺點:查找檔案類型及範圍均有限;

四、locate指令

  • 查找類型:所有檔案;
  • 檢索範圍:locatedb資料庫;

locate是Linux系統提供的一種快速檢索全局檔案的系統指令,它并不是真的去檢索是以系統目錄,而是檢索一個資料庫檔案locatedb(Ubuntu系統位置/var/cache/locate/locatedb),該資料庫檔案包含了系統所有檔案的路徑索引資訊,是以查找速度很快。

Linux系統⾃動建立這個資料庫,并且每天⾃動更新⼀次,是以對于新變動的檔案(如新安裝或新拷貝)使⽤locate指令是查不到的。為了避免這種情況,可以在使⽤locate指令之前,先執行一下"sudo updatedb"指令來手動更新資料庫。

Linux常用查找檔案方法總結
  • 優點:查找速度快,且支援所有檔案類型;
  • 缺點:不支援新變動的檔案檢索,需要手動更新資料庫;

五、find指令

  • 查找類型:所有檔案;
  • 檢索範圍:指定路徑;

find指令是Linux最強大的查找指令,參數多,用法豐富,下面示範一些常用的搜尋方法。

基本用法:$ find <檢索路徑> <選項> <搜尋内容>

可以指定完整的檔案名稱,也可以使用通配符進行模糊查找。

Linux常用查找檔案方法總結

可以指定檔案類型進行查找:

  • -type d 查找目錄;
  • -type f 查找普通檔案;
  • -type l 查找軟連結檔案;
Linux常用查找檔案方法總結

還有最強大的組合指令用法,比如将find+xargs+grep組合檢索傳回的檔案是否包含指定字元串;find+xargs+cp組合将傳回結果拷貝到指定目錄下;

Linux常用查找檔案方法總結

上面指令中的"-i"與"{}"是配套使用的,"-i"表示将前面find指令的标準輸出作為參數傳遞給"{}";而"{}"作為後面cp指令的第一個參數。

  • 優點:功能強大,且支援組合指令;
  • 缺點:如果指定的檢索路徑層級複雜,則檢索速度較慢。

繼續閱讀