RSync-サブディレクトリが異なるレベルに存在する特定のサブディレクトリとその子を除外する


37

G'Day、

rsyncを使用して、次のようなリモートフォルダーツリーを再帰的に同期しています。

/folderA/a1/cache
/folderA/a1/cache/A1
/folderA/a1/cache/A2
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder/cache
/folderB/cache/
/folderB/b1/somefolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache/B1
/folderB/b1/somefolder/yetanotherfolder/cache/B2

フォルダーツリーがどのように表示されるかはわかりませんが、時間とともに変化します。したがって、私ができるようにしたいのは、上記を再帰的にrsyncすることですが、フォルダー「cache」とそこに含まれるサブフォルダーを除外して、最終的に同期をとることです。

/folderA/a1
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder
/folderB/
/folderB/b1/somefolder
/folderB/b1/somefolder/yetanotherfolder/

助言がありますか?


回答:


55

あなたは--exclude旗が欲しい。たとえば、ローカルrsync:

rsync -a --exclude cache/ src_folder/ target_folder/

これは本当に簡単です。この除外ルールは、ツリー内の「キャッシュ」という名前のディレクトリに一致します。

詳細については、rsync manページの「--exclude」および「FILTER RULES」セクションを参照してください。

http://www.samba.org/ftp/rsync/rsync.html


1
ど!! ありがとう、それは私が一番好きな簡単な答えです:
TheEdge

1
ツリーのどこにもないのはどうですか?同様に、excludeのみa/cacheUPDを参照してくださいこの回答
X-ゆり

2
また、--exclude /cache/(先頭に/を付けて)除外するのはa/cacheディレクトリ、ディレクトリはませんcache
アミール

なぜa/ b/上記のコマンドラインで、それはどういう意味ですか?
ダニエル

1
@Danijel:a/は同期元(またはコピー元)のディレクトリです。b/同期するディレクトリです。
ジャンダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.