it-swarm-ja.tech

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

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することですが、excludeフォルダ「キャッシュ」とそこに含まれるすべてのサブフォルダなので、最終的に同期します:

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

助言がありますか?

38
TheEdge

--exclude 国旗。たとえば、ローカルのrsync:

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

それは本当に簡単です-その除外ルールは、ツリーのどこにある "cache"という名前のディレクトリに一致します。

詳細については、rsyncのマニュアルページで「--exclude」および「FILTER RULES」セクションを探してください。

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

57
Jander