Linux學習筆記第四天 - 常見的find命令

find

1 按名稱查找

固定名稱搜索(區分大小寫):find 位置 -name 名稱。

eg:find /tmp -name clj                                                   

執行完成後,找到了/tmp下的clj

固定名稱搜索(不區分大小寫):find 位置 -iname 名稱。

eg:find /tmp -iname clj                                           

執行完成後,就會找到不區分大小寫的所有文件和目錄

通配符查找:使用*和?進行查找

eg: find /tmp -name clj*

*代表所左右字符,這個命令就是 找到以clj開頭的所有的文件和目錄。此外,你還可以使用?來進行查詢,比如: find /tmp -name clj??的意思就是,查找的文件或目錄以clj開頭,後面還有兩位你不知道是什麼。幾個?代表後邊有幾位。

2 按大小查找

find 位置 -size +-= 文件大小。+代表大於,-代表小於,=代表等於

eg:find /tmp -size + 2048。這個代表找到/tmp下大於1M的文件或目錄。有人會問,不應該是2M嗎?其實在這個命令裏,文件的大小是按照 數據塊來算的, 1數據塊=0.5k ,而1M=1024k,1024k也就是2048數據塊了。所以,如果向找大於1M的文件或目錄,要執行的命令是find /tmp -size + 2048,同理,減號和等號也是一樣的。

3 按所有者和所屬組來查找

find /home -user 所有者(所屬組)名稱

eg: find /home -user clj。這條命令就是找到所有者爲clj的文件和目錄

eg: find /home -group clj。這條命令就是找到所屬組爲clj的文件和目錄

4 根據時間屬性來查找

find 位置 -amin,-cmin,-mmin +-時間

-amin +-時間 減號代表一定時間內瀏覽過這個文件,加號代表在一定時間之前瀏覽過 eg:find /tmp -amin +5代表找到在tmp下,五分鐘之前被瀏覽的文件或目錄
-cmin +-時間 減號代表一定時間內修改過這個文件屬性(就是你用ls命令可以看到的那些),加號代表在一定時間之前修改過 eg:find /tmp -cmin +5代表找到在tmp下,五分鐘之前被修改過屬性的文件或目錄
-mmin +-時間 減號代表一定時間內修改過這個文件內容(就是文件裏的內容),加號代表在一定時間之前修改過 eg:find /tmp -mmin -5代表找到在tmp下,五分鐘之內被修改過內容的文件或目錄

5 根據i節點來查找

find 位置 -inum i節點號。eg:find /tmp -inum 522243 代表你要在tmp下找到i節點號爲522243的文件或目錄

6 根據類型查找

find 位置 -type f d l :f代表是文件,d代表是目錄,l代表軟鏈接。

eg: find /tmp -type f  代表找到tmp下的文件

7 條件並列查找

find 位置 條件1 -o -a 條件2,-a代表兩個條件都滿足,-o代表只要滿足一個條件即可。

eg: find /tmp -type f -a -name clj*  代表找到tmp下名稱以clj開頭的文件(因爲是f所以不會查找目錄,只查找文件)。

8 查找並操作

有的時候,在你查出來一個文件或者目錄的時候,你想立刻就去修改它,而不是找到了之後再去那個目錄下或者再敲一遍命令去修改,這時候我們就需要用到 -ok 或者 -exec命令了

格式:find 位置 條件 -exec(-ok) 操作 {} \;

eg: find /tmp -name clj* -a -type f -exec cat {} \; 紅色部分就當作是固定格式來看就可以了

這個命令就是找到tmp下以clj開頭的文件,並瀏覽內容,當然,-exec也可以換成-ok,只不過-ok會有一個提示。

ok,打完收工!!!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章