Linux學習日誌--檔案搜尋命令
開頭總結:
學習了Linux中的檔案搜尋命令find和locate,系統搜尋命令whereis 和which ,字串搜尋命令grep,find和locate的區別和用法格式,什麼是path環境變數以及其好處,whereis和which的用法,區別在於查詢系統命令內容的不同,grep和find的區別,為什麼要引入萬用字元? 什麼情況下用萬用字元還是正則表示式?
Locate檔案搜尋命令:
1)格式:
Locate [檔名]
2)更新資料庫
updatedb
好處:
相對於find命令來說,Locate耗費資源比較少,搜尋速度快。
原理:
locate搜尋檔名是在指定的後臺資料庫下搜尋,一般是/var/lib/mlocate目錄下
而find命令是在檔案系統上整體遍歷。所以速度比較慢,耗費資源大。
命令搜尋命令 whereis 和which(兩者很像)
:只能搜尋系統命令
1)
例如:whereis ls
顯示的是ls的位置和ls的幫助文件的位置。
2)
加了-b以後 就是隻看ls的位置 不看幫助文件的位置
Whereis -b ls
3)
加了-m以後 只看幫助文件的位置 不看Ls的位置
Where -m ls
Which 看到命令的位置和別名(
4)什麼是path環境變數?
就是定義的系統命令搜尋的路徑。
這樣的好處?
輸入命令,就不用在指定其所在的絕對路徑。以後寫好的指令碼命令,就可以放在path中,直接用。
Path中定義了路徑,(手工就不用在輸入據對路徑了,因為在path中配置了)在打ls時 會在這些路徑中找,找到了會執行其命令的功能,找不到會顯示找不到的資訊,Command not found。
Find命令(非常強大的命令):
1)格式
find [搜尋範圍][搜尋條件]
在根目錄下 搜尋名字為install.log的檔案。(耗費資源比較大 因為在個目錄下搜尋)
2)萬用字元 什麼是萬用字元?
為了進行模糊查詢而誕生的符號
* 匹配任意內容
? 匹配任意一個字元
[] 匹配任意一箇中括號內的字元
匹配install.log後面任意字元的檔案和匹配所有檔案
匹配 所有前面任意以g結尾的檔案
3)不區分大小寫進行匹配
Find /root -iname install.log
注意一點: find是進行的完全匹配 就是查詢的和原檔案必須是一個名字,如果要進行模糊查詢,那麼就要用到萬用字元。
4)所有者檔案和垃圾檔案
一般的,我們把沒有所有者的檔案成為垃圾檔案。需要手工清除。用到命令:
Find /root -nouser(常用)
但是核心產生和外來的(u盤)檔案除外。
5)按檔案大小進行查詢
find /root -size 25k
找等於25k的檔案
Find /root -size +25k
找大於25K的檔案
Find /root -size -25k
找小於25k的檔案
6)按檔案的節點序號查詢
Find -inode 26543
尋找節點為26543的檔案。
7)擴充套件
Find /root -size +20k -a -size --50k
-a是邏輯與 找大於20k並且小於50k檔案。
Find /root -size +20k -a -size -50k -exec ls lh {}\;
將找到的檔案的詳細結果顯現出來
標準格式:
-exec [命令] {}\;
Grep字串搜尋命令:(包含匹配)
1) grep [選項] 字串 要查詢檔案
2) 加-v 是查詢不包含字串的檔案的內容
3) 加-i 是不區分大小寫
Grep和find的區別:
1)Find命令在系統當中搜尋符合條件的檔案,而grep命令在檔案中搜索與字串符合的內容;
2)find命令要想匹配,需要用萬用字元,萬用字元是完全匹配。Grep使用正則表示式進行匹配,是包含匹配。
3)什麼時候用萬用字元還是正則表示式?
如果匹配是檔案的名稱,那麼就用萬用字元,如果搜尋的是檔案的內容,那麼就應該用正則表示式。