Linux常用命令之文件搜索命令


最強大的搜索命令:find

首先進行一點說明,find命令是我們在Linux系統中用來進行文件搜索用的最多的命令,功能特別強大。但是我們要說的是盡量少用find命令去執行搜索任務,就算要搜索我們也應該盡量的縮小范圍,也不要在服務器使用高峰期進行文件搜索,因為搜索也是很占系統資源的。這就需要我們在進行Linux文件整理的時候,盡量規范化,什么文件放在什么目錄下都要有比較好的約定。

find這個命令如果要完全講清楚,恐怕得花費很長的時間,而且很多用法我們幾乎用不到,所以這里我就不詳細介紹此命令的每一種用法了,我會詳細介紹幾種最常用的用法,大家只需要記住這幾種就完全夠我們日常使用了。

  • ①、命令名稱:find
  • ②、命令所在路徑:/bin/find
  • ③、執行權限:所有用戶
  • ④ 、語法:find【搜索范圍】【匹配條件】

注意:Linux搜索和windows是有明顯區別的,Linux嚴格區分文件大小寫。

根據 文件或目錄名稱 搜索

find 【搜索目錄】【-name或者-iname】【搜索字符】

  • -name和-iname的區別一個區分大小寫,一個不區分大小寫

①、find /etc -name init   (精准搜索,名字必須為 init 才能搜索的到)

②、find /etc -iname init   (精准搜索,名字必須為 init或者有字母大寫也能搜索的到)

③、find /etc -name *init  (模糊搜索,以 init 結尾的文件或目錄名) 

④、find /etc -name init??? (模糊搜索,? 表示單個字符,即搜索到 init___)

根據 文件大小 搜索

比如:在根目錄下查找大於 100M 的文件

find / -size +204800

這里 +n 表示大於,-n 表示小於,n 表示等於

1 數據塊 == 512 字節 ==0.5KB,也就是1KB等於2數據塊

100MB == 102400KB==204800數據塊

根據 所有者和所屬組 搜索

①、在home目錄下查詢所屬組為 root 的文件

find /home -group root

②、在home目錄下查詢所有者為 root 的文件

find /home -user root

根據 時間屬性 搜索

find 【路徑】【選項】【時間】

選項有下面三種:

  • -amin  訪問時間
  • -cmin   文件屬性被更改
  • -mmin  文件內容被修改

時間:+n,-n,n分別表示超過n分鍾,n分鍾以內和n分鍾

范例:在 /etc 目錄下查找5 分鍾內被修改過屬性的文件和目錄

find /etc -cmin -5

根據 文件類型或i節點 搜索

-type 根據文件類型查找:f表示文件,d表示目錄,l表示軟鏈接

范例:查找 /home 目錄下文件類型是目錄的   find /home -type l

-inum 根據i節點查找

范例:查找 /tmp 目錄下i節點為400342的文件或目錄  find /tmp -inum 400342

組合條件 搜索 

這里有兩個參數:

  • ①、-a  表示兩個條件同時滿足(and)
  • ②、-o  表示兩個條件滿足任意一個即可(or)

范例:查找/etc目錄下大於80MB同時小於100MB的文件

find /etc -size +163840 -a -size -204800

在文件資料庫中查找文件命令:locate  

語法:locate【文件名】

  • -i  不區分大小寫

注意:這里和 find 命令是有區別的,find是全盤檢索,而locate 是在文件資料庫中進行搜索。所以locate命令的執行要比find命令執行速度快很多。但是這里有個問題,文件資料庫是需要不斷更新的。我們新創建的文件如果不更新文件資料庫,使用 locate 是查找不到的。

updatedb  手動更新資料庫,但是對於/tmp目錄下的新建文件,是更新不到文件資料庫的,因為/tmp目錄不屬於文件資料庫的收錄范圍。 

搜索命令所在的目錄及別名信息:which 

語法:which【命令】

范例:查詢 ls 命令所在目錄以及別名信息

搜索命令所在的目錄及幫助文檔路徑:whereis

語法:whereis【命令】

范例:查詢 ls 命令所在目錄以及幫助文檔路徑

在文件中搜尋字符串匹配的行並輸出:grep

語法:grep -iv 【指定字符串】【文件】

  • -i 不區分大小寫
  • -v 排除指定字符串

范例:查找 /root/install.log 文件中包含 mysql 字符串的行,並輸出

grep mysql /root/install.log

 

參考:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM