linux命令:檔案搜尋(locate、whereis、which、find、grep)
阿新 • • 發佈:2019-02-02
locate(檔案搜尋命令):
1、格式:
locate 檔名
2、描述:
在後臺數據庫(/var/lib/mlocate)中按檔名搜尋,速度更快,是因為不用遍歷整個系統。mlocate檔案是定時更新的,在使用locate命令前可以先使用命令 updatedb 強制更新資料庫。
3、其他:
在/tmp 和 root 目錄下分別新建一個檔案aaa.txt,然後更新資料庫(updatedb),搜尋aaa.txt檔案,會發現只搜尋到了root 目錄下的aaa.txt,tmp目錄下的沒有搜尋到。這是因為:
/etc/updatedb.conf 這個檔案的配置在起作用。
/etc/updatedb.conf:
whereis(命令搜尋命令):
格式:whereis [選項] 命令名
作用:搜尋命令所在路徑及幫助文件所在位置
選項:
-b:只查詢可執行檔案
-m:只查詢幫助檔案
which(命令搜尋命令):
格式:which 命令名
作用:搜尋檔案所在的路徑及別名(有的命令沒有別名)
find(檔案搜尋命令):
格式:find [搜尋範圍] [搜尋條件]
作用:搜尋檔案
例子:find / -name haha.txt ; find / -name “haha.*”
注意:避免最大搜索範圍;如果需要匹配,使用萬用字元匹配(萬用字元是完全匹配)。
linux中的萬用字元:
1、*:匹配任意內容
2、?:匹配任意一個字元
3、[]:匹配人一箇中括號中的字元
應用:
1、按“不區分大小寫、按照所有者”查詢
find /root -iname install.log // 不區分大小寫
find /root -user root // 按照所有者搜尋
find /root -nouser //查詢沒有所有者的檔案
2、按照“時間“查詢
find /var/log/ -mtime +10 //查詢10天修改的檔案
/**
* -10:10天內修改的檔案
* 10:10天當天修改的檔案
* +10:10天前修改的檔案
*
* -atime:檔案訪問時間
* -ctime:改變檔案屬性
* -mtime:修改檔案內容
*
* 還可以按照其他時間單位
*/
3、按照“檔案大小“查詢
find . -size 25k //查詢當前目錄下大小為25k的檔案
/**
* -25k:小於25k的檔案
* 25k:等於25k的檔案
* +25k:大於25k的檔案
*
* k、M,前者小寫、後者大寫
*/
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/-ok 命令{} \; 對搜尋結果執行操作
*/
4、按照“節點“查詢
find /root -inum 654641 // 查詢i節點為654641的檔案
grep(搜尋字串命令):
格式:grep [選項] 字串 檔名
選項:
1、-i:忽略大小寫
2、-v:排除指定字串
例子:
find 與 grep 的區別:
1、find命令在系統當中搜尋符合條件的檔名,如果需要匹配使用萬用字元,萬用字元是完全匹配。
2、grep命令在檔案當中搜尋符合條件的字串,如果需要匹配使用正則表示式,正則表示式是包含匹配。