私のフォルダ構造は次のとおりです。
- 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