Bash

如何將一棵樹中的所有文件複製到另一棵樹,除了那些匹配模式的文件?

  • April 17, 2014

我在 ./src/ 下有一個目錄樹

我在 ./work/ 下有另一個匹配的目錄樹

我正在嘗試複製 src 中的所有文件以工作,同時保持目錄結構並排除所有以 .java 結尾的文件。

到目前為止,這是我的嘗試:

find src -type f ! -iname *.java -exec cp {} work \;

這幾乎可以工作,但是所有文件都放在工作的頂層,而不是放在目錄樹中的正確位置。

我怎樣才能做到這一點?(在 Mac OS X 10.9 上使用 bash)

tar cCf /source/path - --exclude "*.java" . | tar xCf /target/path -

rsync -a --exclude='*.java' src/ work/

引用自:https://serverfault.com/questions/589483