天天看點

Linux的檔案搜尋指令

Linux的檔案搜尋指令

搜尋檔案的指令:locate

locate 檔案名
#在背景資料庫中按檔案名搜尋,搜尋速度更快

/var/lib/mlocate  (locate指令所搜尋的背景資料庫)

updatedb
#更新資料庫(預設一天更新一次)
           

搜尋指令的指令:whereis

whereis 指令名
#搜尋指令所在路徑及幫助文檔所在位置

-b:隻查找可執行檔案
-m :隻查找幫助檔案
           

搜尋指令的指令:which

which 檔案名
#搜尋指令所在路徑及别名
           

檔案搜尋指令:find

find [搜尋範圍] [搜尋指令]
#(搜尋速度慢)
#1.避免搜尋範圍過大,會非常耗費系統資源
#2.find是在系統當中搜尋符合條件的檔案名。如果需要比對,使用通用符比對,通用符是完全比對
           

find用法舉例:

find用法舉例:

find / -name install.log
#完全比對:隻能搜尋到 install.log,名字完全一緻才能被搜到

1.如果進行包含比對,需加通配符
find /root -name "install.log*"

2.不區分大小寫進行搜尋
find /root -iname install.log
-iname 

3.按照所有者搜尋
find /root -user root(搜尋所有者是root的檔案)

4.搜尋指定目錄下沒有所有者的檔案
find /root -nouser
#注:Linux中沒有所有者的檔案當做垃圾檔案,可進行處理。
   但*核心産生*的檔案有可能沒有所有者(proc和sys兩個目錄中);
   *外來檔案*可能沒有所有者;

5.按日期進行搜尋(日志)
find /var/log/ -mtime +10
#查找十天前修改的檔案

-10  十天内修改檔案
10  十天當天修改檔案
+10  十天前修改檔案
 
 -atime 檔案通路時間
 -ctime 改變檔案屬性
 -mtime  修改檔案内容

6.按檔案大小搜尋
find . -size 25k(查找目前目錄下檔案大小是25KB的檔案,k為小寫)
find /root -size 25M(查找root目錄下檔案大小是25M的檔案,M大寫)

+25k  大于25KB的檔案
25k  25KB的檔案
-25k  小于25KB的檔案

7.按 i 結點查找
find . -inum 917509
           

搜尋字元串指令:grep

grep [選項] 字元串 檔案名
#在檔案中比對符合條件的字元串
選項:
-i  忽略大小寫
-v  排除指定字元串
           

補充:

環境變量:
PATH環境變量:定義的是系統搜尋指令的路徑
echo $PATH
           
通配符:
*  比對任意内容
?  比對任意一個字元
[]  比對任意一個中括号内的字元
           
find /etc -size +20k -a -size -50k
#查找/etc/目錄下,大于20k小于50k的檔案
-a and,邏輯與
-o or,邏輯或

find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目錄下,大于20k小于50k的檔案,并顯示其詳細資訊
#-exec 指令 {} \;  對搜尋結果進行再次操作
           
find指令和grep指令的差別
find:在系統中搜尋符合條件的檔案名
grep:在檔案中搜尋符合條件的字元串
           

繼續閱讀