例えば、以下のような構造をしたディレクトリ(フォルダ)があるとして、それぞれのディレクトリ内に存在するsrc/
を除いたファイルをコピーしたいとき、cpコマンドとfindコマンドを組み合わせて書くこともできますが、rsyncを使ったほうが早いです。
folder1/ ┣ App1/ ┃ ┣ bin/ ┃ ┗ src/ ┣ App2/ ┃ ┣ bin/ ┃ ┗ src/ ┣ App3/ ┃ ┣ bin/ ┃ ┗ src/ ┣ App4/ ┃ ┣ bin/ ┃ ┗ src/ ┗ App5/ ┣ bin/ ┗ src/
をfolder2に以下のようにコピーしたい。
folder2/ ┣ App1/ ┃ ┗ bin/ ┣ App2/ ┃ ┗ bin/ ┣ App3/ ┃ ┗ bin/ ┣ App4/ ┃ ┗ bin/ ┗ App5/ ┗ bin/
以下のようにコマンドを実行することでうまくいきます。
$ rsync -av folder1/ folder2/ --exclude "*/bin/"
それに加えて特定の拡張子(*.obj)のファイルを除外したい場合は以下のようなコマンドを書くことでいけます。
$ rsync -av folder1/ folder2/ --exclude "*/bin/" --exclude "*.obj"
参考資料
HTMLファイルだけを別のディレクトリにコピーする | 渋谷生活
コメント