使用 rsync 将文件从多个目录复制到一个目录

使用 rsync 将文件从多个目录复制到一个目录

是否可以将文件从各个子目录复制到一个目录。例如,我有一个如下所示的结构:

+ 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

相关内容