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:在檔案中搜尋符合條件的字元串