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

Linux學習--檔案搜尋命令

一、檔案搜尋命令  find

  語法:find [搜尋範圍] [匹配條件]  {find [搜尋範圍] [搜尋模式] [搜尋條件]}

  1.以檔名來查詢  -name(區分大小寫)-iname (不區分大小寫)

  find /etc -name inid

  或者 find /etc/ -iname init

  需要注意的是,以上命令只能進行精準搜尋,即檔名全匹配,對於檔名中包含以上字母的檔案時搜尋不到的,這存在一定的侷限性,要想進行模糊匹配搜尋可以使用一些萬用字元,如:“*” 可以代表任意的字元,“?” 代表一個字元;案例如下:

  查詢以init開頭的檔案

·  查詢以init結尾的檔案

  查詢檔名中包含init的檔案

  查詢以init開頭,後面有三個字元的檔案

  2.以檔案大小搜尋  -size

  以檔案大小搜尋,需要注意的是其大小的單位為資料塊,一個數據塊是512位元組即512B等於0.5K,如果要索大於100M的檔案,其大小可以表示為100*1024*2=204800。在命令中用+代表大於,用-代表小-於,不使用代表等於,如下例項:在根目錄下查詢大於100M的檔案

3.以檔案所有者或者所屬組搜尋  -user -group

  如:查詢所屬組為hefei,或者所有者為an的檔案

 4.根據時間屬性來查詢

  語法:-amin  訪問時間  access  查詢某個時間範圍被訪問過的檔案

     -cmin  檔案屬性  change  查詢某個時間範圍被修改過檔案屬性的檔案

     -mmin  檔案內容  modify  查詢某個時間範圍被修改過檔案內容的檔案

  如:find /etc -mmin -600  查詢600分鐘以內被修改過的檔案或目錄

5.根據檔案型別來查詢 -type

  語法:f  指定檔案型別

     d  指定目錄型別

     l  指定軟連線型別

  如:find /tmp -type d  查詢/tmp目錄下的目錄

6.根據i節點來查詢 -inum

  

7.查詢命令的條件連線符

  語法:-a  左右兩個條件同時滿足 and

     -o  兩個條件滿足任意一個都行

  如:find /etc -name init* -a -type f   查詢/etc 目錄下以名稱以init開頭的檔案

  find /etc -name init* -o -name a*  查詢/etc 目錄下以名稱以init開頭或者以a開頭的檔案或目錄

8.對查詢的內容資訊結合其他命令執行進一步操作

  語法:find查詢命令後跟 -exec/-ok 執行命令 {} \;

  如:find /etc -name init* -exec ls -l {} \;  以長格式的形式顯示查詢內容的資訊

  以上命令使用-ok 也行,只是使用-ok的時候回多一個確認的環節,比如,當要刪除一些檔案的時候: