通过 SSH 一次下载多个文件

通过 SSH 一次下载多个文件

我想使用 ssh 从包含数千个文件的服务器下载一个文件夹。我使用的是 Ubuntu,并且没有该服务器的写入权限,因此我无法在服务器上创建 .tar 文件并随后复制它。但是单独下载所有文件非常慢。

那么,如何使用命令行将包含那么多文件的文件夹下载为一个存档?

答案1

你可以做这样的事情:

ssh username@hostname 'tar -cf - /dir/to/download' | gzip > remote_files.tgz

这将在远程服务器上运行 tar,但不是写入文件,而是输出到stdout。这将通过 SSH 返回到您的本地计算机,进行 gzip 压缩,然后写入文件。

答案2

前面两个答案都可以,但我很惊讶没有人提到rsync,例如:

rsync -az [email protected]:/path/to/remote/files/ /path/to/local/files/

额外的好处是,如果连接中断,您可以重新启动,它会找出剩下需要复制的内容。

答案3

安全副本“scp”已随 OpenSSH 一起安装。因此这应该可以解决问题...

scp -r [email protected]:/path/to/remote/files /path/to/local/files

-r 递归复制整个目录。

man scp了解详细信息。

相关内容