linux根據文件內容查找文件 linux按文件內容查找

一、前言Linux系統提供了多種查找文件的命令,而且每種查找命令都具有其獨特的優勢,下面詳細總結一下常用的幾個Linux查找命令 。二、which命令查找類型:二進制文件;檢索范圍:PATH環境變量里面指定的路徑中查找;通過which命令可以快速返回某
一、前言
Linux系統提供了多種查找文件的命令,而且每種查找命令都具有其獨特的優勢,下面詳細總結一下常用的幾個Linux查找命令 。

linux根據文件內容查找文件 linux按文件內容查找

文章插圖
二、which命令
查找類型:二進制文件;
檢索范圍:PATH環境變量里面指定的路徑中查找;
通過which命令可以快速返回某個指定命令的位置信息 。

linux根據文件內容查找文件 linux按文件內容查找

文章插圖
優點:查找速度快;
缺點:僅支持二進制文件;
三、whereis命令
查找類型:二進制文件,man幫助文件,及源代碼文件;
檢索范圍:/usr目錄
通過whereis命令可以快速返回某個指定命令的位置信息,及其man文件和源代碼文件的位置信息(如果存在的話) 。
當然也可以通過參數指定返回某一類查找結果:
-b: 僅查找二進制文件;
-m: 僅查找man幫助文件;
-s: 僅查找源代碼文件;

linux根據文件內容查找文件 linux按文件內容查找

文章插圖
優點:查找速度快;
缺點:查找文件類型及范圍均有限;

四、locate命令
查找類型:所有文件;
檢索范圍:locatedb數據庫;

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

Linux系統動創建這個數據庫,并且每天動更新次,所以對于新變動的文件(如新安裝或新拷貝)使locate命令是查不到的 。為了避免這種情況,可以在使locate命令之前,先執行一下\\\”sudo updatedb\\\”命令來手動更新數據庫 。

linux根據文件內容查找文件 linux按文件內容查找

文章插圖
優點:查找速度快,且支持所有文件類型;
缺點:不支持新變動的文件檢索,需要手動更新數據庫;

五、find命令
【linux根據文件內容查找文件 linux按文件內容查找】查找類型:所有文件;
檢索范圍:指定路徑;

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

基本用法:$ find <檢索路徑> <選項> <搜索內容>
可以指定完整的文件名稱,也可以使用通配符進行模糊查找 。

linux根據文件內容查找文件 linux按文件內容查找

文章插圖
可以指定文件類型進行查找:
-type d: 查找目錄;
-type f: 查找普通文件;
-type l: 查找軟鏈接文件;

linux根據文件內容查找文件 linux按文件內容查找

文章插圖
還有最強大的組合命令用法,比如將find+xargs+grep組合檢索返回的文件是否包含指定字符串;find+xargs+cp組合將返回結果拷貝到指定目錄下;

linux根據文件內容查找文件 linux按文件內容查找

文章插圖
上面命令中的\\\”-i\\\”與\\\”{}\\\”是配套使用的,\\\”-i\\\”表示將前面find命令的標準輸出作為參數傳遞給\\\”{}\\\”;而\\\”{}\\\”作為后面cp命令的第一個參數 。

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

    推薦閱讀