如何正确地递归复制(scp/rsync)文件夹?

如何正确地递归复制(scp/rsync)文件夹?

我想复制一个由 20k 个文本文件组成的文件夹层次结构,每个文件大约 10..500kB。

我最初尝试过:

scp -r server:${REMOTE} ${LOCAL}

但它太慢了,所以我尝试了rsync以下方法:

scp -zr server:${REMOTE} ${LOCAL}

又太慢了,花了大约 2 个小时才完成。

我遇到了第三种解决方案:

ssh server tar czf ~/tmp.tar.gz --directory=$(dirname $REMOTE) ${REMOTE}
scp server:tmp.tar.gz .
tar xzf --directory=${LOCAL} tmp.tar.gz

它速度更快,但使用起来不太方便,而且我必须确保它tmp.tar.gz还不存在。

有没有其他折中方案?

相关内容