rsyncを使用して複数のディレクトリのファイルを1つにコピーする

rsyncを使用して複数のディレクトリのファイルを1つにコピーする

さまざまなサブディレクトリのファイルをディレクトリにコピーすることは可能ですか?たとえば、次のような構造があります。

+ dir1
  + file1.ext
  + file2.ext
+ dir2
  + file3.ext
  + file4.ext
  + subdir
     +dontwanttocopy.ext

現在、次のコマンドを使用しています

find "//mysourcepathdirectory/" -maxdepth 2 -type f -name "*.ext" -exec rsync -vr -e ssh {} user@server:/mypath/videos/ \;

もちろん、このコマンドを使用すると、サーバーに繰り返しログインします。一度だけログインするだけのコマンドが必要です。痛みを避けるためにSSHキーを使用していますが、これが正しいアプローチではないことがわかります。時間が経つにつれ、いくつかのファイルしか変更されないので、rsyncを使用したいと思います。また、デフォルトパス(たとえば、上記の例のsubdir)の下のサブディレクトリにファイルをコピーするのを避けたいと思います。

答え1

rsyncはい、(再帰コピー)オプションを含むコマンドがあります。-r

rsync -r /path/in/source/dir*/*.ext /path/to/destination

--excludeオプションを使用して、サブディレクトリとディレクトリ構造を除外することもできます。

rsync -rv --exclude='*/' /path/in/source/dir*/ /path/to/destination/

またはサブディレクトリを使用してください。

rsync -rv --exclude='*/*' /path/in/source/dir*/ /path/to/destination/

scp次のコマンドを使用することもできます。

scp -r /path/in/source/dir*/*.ext /path/to/destination

関連情報