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