find命令:
F i n d是一個非常有效工具,它可以遍曆目前的目錄甚至於整個檔案系統來尋找某些檔案或目錄,
一般形式為:find pathname -options [-print -exec -ok]
find命令選項
-name 按照檔案名稱尋找檔案。
-perm 按照檔案許可權來尋找檔案。
-prune 使用這一選項可以使f i n d命令不在當前指定的目錄中尋找,如果同時使用了- d e p t h選項,那麼- p r u n e選項將被f i n d命令忽略。
-user 按照檔案屬主來尋找檔案。
-group 按照檔案所屬的組來尋找檔案。
-mtime -n +n 按照檔案的更改時間來尋找檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。
-type 尋找某一類型的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。
ex:[spsn@localhost Tan_C]$ find /etc -type d @:尋找/etc下的目錄
[spsn@localhost Tan_C]$ find . -type f @:尋找目前的目錄下的普通檔案
[spsn@localhost Tan_C]$ find . -name "*.c" @:尋找目前的目錄下檔案名稱以.c結尾的檔案
[spsn@localhost Tan_C]$ find . -mtime -5 @:尋找目前的目錄下檔案修改時間在5日之內的檔案
grep命令
。g r e p(全域Regex版本)允許對文字檔進行模式尋找。如果找到匹配模式, g r e p列印包含模式的所有行。g r e p支援基本正
則運算式,也支援其擴充集。g r e p有三種變形,即:
G r e p:標準g r e p命令,本章大部分篇幅集中討論此格式。
E g r e p:擴充g r e p,支援基本及擴充的Regex,但不支援\ q模式範圍的應用,與之相對應的一些更加規範的模式,這裡也不予討論。
F g r e p:快速g r e p。允許尋找字串而不是一個模式。不要誤解單詞f a s t,實際上它與g r e p速度相當。
g r e p一般格式為:grep [選項]基本Regex[檔案].這裡基本Regex可為字串。
grep選項
常用的g r e p選項有:
-c 只輸出匹配行的計數。
-i 不區分大小寫(只適用於單字元)。
-h 查詢多檔案時不顯示檔案名稱。
-l 查詢多檔案時只輸出包含匹配字元的檔案名稱。
-n 顯示匹配行及行號。
-s 不顯示不存在或無匹配文本的錯誤資訊。
-v 顯示不包含匹配文本的所有行。
exec:
[spsn@localhost Tan_C]$ grep "main" * @在目前的目錄的所有檔案中尋找單詞"main"
[spsn@localhost Tan_C]$ grep "printf" sum.c @在目前的目錄下的sum.c檔案中尋找字串"printf"
[spsn@localhost Tan_C]$ grep -c "printf" letter.c @顯示含有字串"printf"的行數
幾個例子中,將用到管道命令,即符號|,使用它左邊命令的輸出結果作為它右邊命令的輸入。
[spsn@localhost Test]$ ls -l|grep '^d' @查詢目前的目錄列表中的目錄
g r e p不只應用於檔案,也可應用於字串。為此使用e c h o字串命令,然後對g r e p命令使用管道輸入。
[spsn@localhost Test]$ STR="Mary Joe Peter Pauline"
[spsn@localhost Test]$ echo $STR|grep "Mary"