[root@localhost]# [root@localhost]# find ./ -name "*.txt" -print^C [root@localhost]#上述的指令是非常基本的用法;但還有一些不錯用的參數值得記一下:
-name: 指定檔案名稱,這個檔案名稱也可以搭配正規表示法 (Regular Expression)。
-iname: 指定檔案名稱,但不區分大小寫字母。
-type: 可以蒐尋特定的檔案類型;所謂的檔案類型,就是當我們執行"ls -l"指令時,每1個檔案最前面的字母。如下:
- -: 一般檔案 (File)。
- d: 目錄 (Directory)。
- b: 區塊設備 (Block)。
- c: 字元設備 (Character)。
- l: 符號連結、軟連結檔案 (Symbol Link)。
- p: 管線檔案 (Pipe)。
- s: 網路套接檔案 (Socket)。
-perm: 查找特定權限 (Permission)的檔案,如"-perm 0777"。
-empty: 尋找空的檔案或是空的目錄,如:
[root@localhost]# [root@localhost]# find ./ -type f -empty [root@localhost]# [root@localhost]# find ./ -type d -empty [root@localhost]#-user / -group: 指定尋找檔案特定的使用者或是群組,例如:-user "picasso"、-group "chinese"。
-size: 指定尋找檔案特定的大小:
- -size 50M // 剛好是 50 MB
- -size +50M // 大於 50 MB
- -size -100M // 小於 100 MB
- -size +50M -size -100M // 大於 50 MB ,且小於 100 MB
-exec: 把查找出來的結果,執行 (Execution)某個命令指令。如:
[root@localhost]# [root@localhost]# find ./ -name ".git" -exec rm -rf [root@localhost]#不過,並不建議使用"-exec"參數;可以改使用管線 (Pipe)搭配"xargs"指令:
[root@localhost]# [root@localhost]# find ./ -name ".git" | xargs -r rm -rf [root@localhost]#grep (Globally search for Regular Expression and print it)的基本指令用法:
[root@localhost]# [root@localhost]# grep "Hello!! World!! " ./ -r [root@localhost]#-i: 關鍵字不分大小寫字母。
-n: 找出來的資料要顯示行號。
-v: 反向匹配。即沒有關鍵字的那幾行。
-r: 遞迴搜尋。即該目錄下的所有檔案。
--include="(fine name)": 可以指定特定的檔案。
有些檔案是無法讀取的,強制執行時會發生錯誤訊息;可以在執行grep指令的最後加上:2> /dev/null
-A (n): 找到該筆資料的前一行 (After)。
-B (n): 找到該筆資料的後一行 (Before)。
-C (n): 找到該筆資料的前後各一行 (Current)。
--color=never / always / auto: 用顏色來明顯地標示出該行資量的所在位置。
以下是grep指令常搭配的正規表示法應用。
"^a": 以'a'為開頭的字串。
"b$": 以'b'為結尾的字串。
"^[ab]": 以'a'或'b'為開頭的字串。
"[ab]$": 以'a'或'b'為結尾的字串。
"^ab": 以"ab"為開頭的字串。
"ab$": 以"ab"為結尾的字串。
"ab | cd": 含有"ab"或"cd"的字串。
"\bnet\b": 精準地找出只有"net"的字串;而像"network"這種的就會被排除在外。
沒有留言:
張貼留言