2016-04-25 128 views
0

我已經準備好了很多關於這個的帖子,並且嘗試了所有這些帖子,但沒有任何工作對查找輸出有任何影響。如何排除查找中的目錄

我基本上有一堆源文件,但grails的工作方式,它把一個「目標」目錄放在其中一個包含我們想排除的所有構建工件的子文件夾中。

我的基本命令行,包括我所需要的文件如下:

find * -type f -name "*.groovy" -o -name "*.gsp" -print > ha 

注意我沒有使用「查找」。因爲我不想讓「./xxx」出現在輸出中。

我在公園獲得「myapp/target/xxx/yyy」。

我已經嘗試了所有的下面,並沒有對輸出的任何影響:上述的

find * ! -path "backoffice/target/" -type f -name "*.groovy" -o -name "*.gsp" -prune -print > ha 
find * \(! -path "backoffice/target/*" \) -type f -name "*.groovy" -o -name "*.gsp" > ha 
find * -type f -name "*.groovy" -o -name "*.gsp" -not -path '*/target/*' > ha 
find * -type f -name "*.groovy" -o -name "*.gsp" ! -path "*target*" > ha 
find * -type d \(! -wholename "backoffice/target/*" \) -type f -name "*.groovy" -o -name "*.gsp" -print > ha 
find * ! -wholename "backoffice/target/*" -type f -name "*.groovy" -o -name "*.gsp" -print > ha 

和許多變化。

有什麼想法?

回答

1
find * -path "backoffice/target/" -prune -o -type f \(-name "*.groovy" -o -name "*.gsp" \) -print 
0

這是一個答案,99%的「不包括子目錄」的解決方案似乎不起作用(至少對我而言)。

有趣的是,這是我們試圖得到源文件列表的Grails項目:

find * -type d \(-name "target" -o -name "test" \) -prune -o -type f \(-name "*.groovy" -o -name "*.gsp" -o -name "*.java" -o -name "*.css" -o -name "*.js" -o -name "*.less" -o -name "*.properties" -o -name "*.sql" -o -name "*.xml" \) -print > ha