1. 程式人生 > >Linux學習之檔案搜尋命令

Linux學習之檔案搜尋命令

一、檔案搜尋命令:locate 檔名
1、在後臺數據庫(/var/lib/mlocate )中按檔名搜尋,搜尋速度更快,耗費資源少。

/var/lib/mlocate 不是實時更新的,一般是一天更新;但可強制更新:updatedb命令

2、locate的特點:遵守 /etc/updatedb.conf 配置檔案規則:

PRUNE_BIND_MOUNT=“YES” 開啟搜尋限制
PRUNEFS= 搜尋時,不搜尋的檔案系統
PRUNENAMES= 搜尋時不搜尋的檔案型別
PRUNEPATHS= 搜尋時不搜尋的路徑

3、whereis 命令名 (搜尋命名的命令,只能檢視命令)
用來搜尋 命令 所在路徑 及其幫助文件所在位置
選項: -b 只檢視可執行檔案
-m 只檢視幫助檔案

4、which 命令
搜尋命令所在路徑,可以看到命令的別名

5、PATH環境變數:定義的是系統搜尋命令的路徑

注意:使用命令本應該使用它的絕對路徑,但配置了PATH環境變數後,就無需使用絕對路徑;使用命令時系統會到PATH路徑中查詢;

[email protected]:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

6、find [搜尋範圍] [搜尋條件]
用於搜尋檔案
注意:避免大範圍的搜尋,會非常耗費系統資源;如果需要匹配,可以使用萬用字元,萬用字元時完全匹配的;
*

      * 匹配任意內容       ? 匹配一個字元           [ ]  匹配任意一個括號中的字元

find /root -name install.log 區分大小寫,必須相同
find /root -iname install.log 不區分大小寫
find /root -user root 按所有者來查詢
find /root -nouser 查詢沒有所有者的檔案

注意:除了linux核心產生的檔案,和外來的檔案,在linux中的檔案都應該具有所有者許可權

find /var/log -mtime -10 查詢10天內修改的檔案
+10 10天前
10 10天當天
-10 10天內

-atime 檔案訪問時間
-ctime 改變檔案屬性
-mtime 修改檔案內容

find . -size 25k 按檔案大小搜尋
-25k 小於25k
25k 等於25k
+25k 大於25k

注意:k是小寫;M是大寫

find . -inum 2563757 按 i節點查詢

find . -size +20k -a -size -50k
查詢大小在20k到50k之間的檔案
-a 邏輯與,兩個條件都滿足
-o 邏輯或,滿足任意一個條件

find . -size +20k -a -size 50k -exec ls -lh {} \ ;
查詢大小在20到50k之間的數,並顯示詳細資訊
-exec / -ok 命令 {} \ ; 對搜尋結果進行操作

7、grep [選項] 字串 檔名
在檔案中匹配符合條件的字串
選項:-i 忽略大小寫
-v 排除指定字串(搜尋與字串不符合的)

find與grep的區別: find命令:是在系統中搜索符合條件的檔名;如果需要匹配,則使用萬用字元匹配;萬用字元匹配是完全匹配;
grep命令:是在檔案中搜索符合條件的字串;如果需要匹配,則使用正則表達時進行匹配,正則表示式是包含匹配;