1. 程式人生 > >Linux學習日誌--檔案搜尋命令

Linux學習日誌--檔案搜尋命令

開頭總結:

 學習了Linux中的檔案搜尋命令find和locate,系統搜尋命令whereis 和which ,字串搜尋命令grep,find和locate的區別和用法格式,什麼是path環境變數以及其好處,whereis和which的用法,區別在於查詢系統命令內容的不同,grep和find的區別,為什麼要引入萬用字元? 什麼情況下用萬用字元還是正則表示式?

Locate檔案搜尋命令:

1)格式:

   Locate [檔名]

2)更新資料庫

        updatedb

好處:

相對於find命令來說,Locate耗費資源比較少,搜尋速度快。

原理:

locate搜尋檔名是在指定的後臺資料庫下搜尋,一般是/var/lib/mlocate目錄下

,但是資料庫是一天一次更新,所以你今天新建的檔案,用locate找不到,但是可以updatedb命令強制更新,就可以找到了。

    而find命令是在檔案系統上整體遍歷。所以速度比較慢,耗費資源大。

命令搜尋命令 whereis which(兩者很像)

         :只能搜尋系統命令

1)

例如:whereis ls 

 顯示的是ls的位置和ls的幫助文件的位置。

2)

加了-b以後 就是隻看ls的位置 不看幫助文件的位置

   Whereis -b ls

3)

加了-m以後 只看幫助文件的位置 不看Ls的位置

Where -m ls


Which 看到命令的位置和別名(

也有例外)  看不到命令的幫助文件。

4)什麼是path環境變數?

  就是定義的系統命令搜尋的路徑。 

  這樣的好處?

 輸入命令,就不用在指定其所在的絕對路徑。以後寫好的指令碼命令,就可以放在path中,直接用。

Path中定義了路徑,(手工就不用在輸入據對路徑了,因為在path中配置了)在打ls時 會在這些路徑中找,找到了會執行其命令的功能,找不到會顯示找不到的資訊,Command not found

 

Find命令(非常強大的命令)

1)格式

find [搜尋範圍][搜尋條件]


在根目錄下 搜尋名字為install.log的檔案。(耗費資源比較大 因為在個目錄下搜尋)

2)萬用字元     什麼是萬用字元?

                 為了進行模糊查詢而誕生的符號

*   匹配任意內容

?   匹配任意一個字元

[]   匹配任意一箇中括號內的字元

匹配install.log後面任意字元的檔案和匹配所有檔案


  匹配 所有前面任意以g結尾的檔案


3)不區分大小寫進行匹配

 Find  /root -iname install.log

注意一點: find是進行的完全匹配 就是查詢的和原檔案必須是一個名字,如果要進行模糊查詢,那麼就要用到萬用字元。

4)所有者檔案和垃圾檔案

一般的,我們把沒有所有者的檔案成為垃圾檔案。需要手工清除。用到命令:

Find /root -nouser(常用)

但是核心產生和外來的(u盤)檔案除外。

5)按檔案大小進行查詢
find  /root  -size 25k

找等於25k的檔案

 Find /root  -size +25k

找大於25K的檔案

Find /root  -size -25k

找小於25k的檔案

6)按檔案的節點序號查詢

 Find -inode 26543

尋找節點為26543的檔案。

7)擴充套件

 Find /root -size +20k -a -size --50k

-a是邏輯與  找大於20k並且小於50k檔案。

Find /root -size +20k -a -size -50k -exec ls lh {}\;

將找到的檔案的詳細結果顯現出來 

標準格式:
-exec  [命令]  {}\;

Grep字串搜尋命令:(包含匹配)

 1)  grep [選項字串  要查詢檔案

 2)  -v 是查詢不包含字串的檔案的內容   

 3)  -i  是不區分大小寫

Grepfind的區別:

1)Find命令在系統當中搜尋符合條件的檔案,而grep命令在檔案中搜索與字串符合的內容;

2)find命令要想匹配,需要用萬用字元,萬用字元是完全匹配。Grep使用正則表示式進行匹配,是包含匹配。      

3)什麼時候用萬用字元還是正則表示式?

如果匹配是檔案的名稱,那麼就用萬用字元,如果搜尋的是檔案的內容,那麼就應該用正則表示式。