find命令之查詢指定目錄
阿新 • • 發佈:2019-01-02
問題#1:
在當前目錄下查詢不在 .svn 目錄中的可執行檔案。
$ find . -path "*.svn*" -prune -o -type f -executable -print
注意:-print 必須放到最後;-o 表示邏輯運算 or;即如果 -path 後的模式匹配成功,則執行。 -prune 表示忽略該目錄;否則(-o)就執行 -type f -executable -print。
問題#2:
在當前目錄下查詢沒有副檔名的檔案
$ find . ! -name "*.*" -type f
問題#3:
在當前目錄下查詢即不在 man 目錄下也不在 doc 目錄下的所有無副檔名檔案
$ find . \( -path "*man*" -o -path "*doc*" \) -prune -o -type f ! -name "*.*" -print
問題#4 :
查詢所有不在 .svn 目錄下的檔案
$ find ! -path "*.svn*" -type f
注意:-path "*.svn*" 可解釋為路徑名稱滿足表示式“*.svn*”的所有目錄;
! -path "*.svn*" 可解釋為路徑名稱不滿足表示式“*.svn*”的所有目錄。
此方法比之前的方法更簡練,效果一樣。