find與grep的組合使用

在當前目錄下所有文件中查找內容包含 string 的文件:find ./ -name "*" -exec grep "string" {} \;注意:在最後不能加 print ,否則會出錯.

在當前目錄下所有文件中查找內容包含 string 的文件並列出字符所在的文件:find ./ -name "*" -exec grep -l "string" {} \;

在當前目錄下 *.c 中查找內容包含 string 的文件並列出字符所在的文件的所在行(不顯示文件名):find ./ -name "*.c" -exec grep -n "string" {} \;

在當前目錄下所有文件中查找內容包含 string 的文件並列出字符所在的文件,所在行及所在行的內容:find ./ -name "*" -exec grep -n "string" ./ {} \;

使用 find 查找時希望忽略某個目錄(-prune):如果希望在 /app 目錄下查找文件, 但不希望在 /app/bin 目錄下查找:find /app -name "/app/bin" -prune -o -print

使用 type 選項:如果要在 /etc 目錄下查找所有的目錄:find /etc -type d -print

如果要在 /etc 目錄下查找 .svn 的目錄:find /etc -name .svn -type d -print

爲了在當前目錄下查找除目錄以外的所有類型的文件:find . ! -type d -print

爲了在當前目錄下查找所有的符號鏈接文件, 可以用:find . -type l -print

爲了用 ls -l 命令列出所匹配到的文件, 可以把 ls -l 命令放在find命令的 -exec 選項中:find . -type f -exec ls -l {} \;

注: f 表示普通文件exec 選項後面跟隨着所要執行的命令, 然後是一對 {}, 一個空格和一個 \,最後是一個分號。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章