亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何排除查找中的目錄。命令

如何排除查找中的目錄。命令

Helenr 2019-06-26 14:57:56
如何排除查找中的目錄。命令我在試著find命令,但是如何排除特定目錄?這是find我們正在使用的代碼。for file in $(find . -name '*.js')do    java -jar config/yuicompressor-2.4.2.jar --type js $file -o $filedone
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

使用-prune切換。例如,如果要排除misc目錄只需添加一個-path ./misc -prune -o您的查找命令:

find . -path ./misc -prune -o -name '*.txt' -print

下面是一個包含多個目錄的示例:

find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o -print

在這里我們不包括迪爾1迪爾2迪爾3,自從.find表達式-它是一種根據標準進行操作的動作。-path dir1 -o -path dir2 -o -path dir3(如果迪爾1迪爾2迪爾3)、type -d.

進一步的行動是-o print印出來就行了。


查看完整回答
反對 回復 2019-06-26
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

如果-prune不適合你,這會:

find -name "*.js" -not -path "./directory/*"

警告:需要遍歷所有不需要的目錄。


查看完整回答
反對 回復 2019-06-26
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

我發現,與其他建議的解決方案相比,下面的理由更容易解釋:

find build -not \( -path build/external -prune \) -name \*.js# you can also exclude multiple pathsfind build -not \( -path build/external -prune \) -not \( -path build/blog -prune \) -name \*.js

重要說明:之后鍵入的路徑-path必須完全匹配什么find在沒有排除的情況下打印。如果這句話讓您感到困惑,請確保使用完整的路徑。整體命令如下:find/完整/路徑/-not \( -path/完整/路徑/排除/此-prune .....如果您想要更好的理解,請參見注[1]。

\(\)是將匹配的表達式。一點兒沒錯 build/external(見上文重要說明),并將在取得成功時,避免在下面橫穿任何東西..然后將其分組為帶有轉義括號的單個表達式,并以-not這將使find跳過任何與該表達式匹配的內容。

有人可能會問,如果添加-not不會將所有其他文件隱藏在-prune重新出現,答案是否定的。路途-prune工作原理是,一旦到達,該目錄下的文件就會被永久忽略。

這來自于一個實際的用例,在這里,我需要調用由Wintersmith生成的一些文件,但忽略了需要按原樣發送的其他文件。


注[1]*如果你想排除/tmp/foo/bar然后你跑去找這樣的“find /tmp \(...“那么您必須指定-path /tmp/foo/bar..另一方面,如果你跑了,就像這樣cd /tmp; find . \(...那么您必須指定-path ./foo/bar.


查看完整回答
反對 回復 2019-06-26
  • 3 回答
  • 0 關注
  • 535 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號