rsync /データ/*/イメージ/モード

rsync /データ/*/イメージ/モード

私のフォルダ構造は次のとおりです。

- data
-- user 1
--- images
--- other stuff
-- user 2
--- images
--- other stuff
-- user 3
...

rsyncすべてのフォルダが欲しいですimages。包含/除外ルールを使用すると、idユーザーが事前にわからないため、問題が発生します。実際のアプリケーションでは乱数です。

私はこのようなものが必要ですdata/**/images/。これは、データフォルダの下にすべての画像フォルダをインポートすることを意味します。

lsパイプや同様のチートなしでこれは可能ですかrsync

答え1

すべてのフォルダをコピーするには、images単純なシェルワイルドカードで十分です。しかし、目的地のパスを保存したいと思うので、-Rこれにはフラグが必要です。

cd /path/to/data
rsync -iavR */images remote:/path/to/destination/

*/imagesこれには、ターゲットディレクトリの下のターゲットのソースパス部分が含まれます。したがって、ソースコードがあれば、/path/to/data/12345/images/picnic.jpg最終的に次の場所にコピーされます。/path/to/destination/12345/images/picnic.jpg

インタラクティブに実行していて進行状況を確認するには、--progressまたはを追加します。--dry-run

関連情報