是否可以将文件从各个子目录复制到一个目录。例如,我有一个如下所示的结构:
+ 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