如何在一个命令中gzip目录,通过scp传输和解压缩?


11

我经常转移大型目录,scp如果我能以某种方式压缩目录,发送目录并将其全部解压缩,那将很不错。

这样的事情可能吗?

Answers:


29

如何rsync-z启用了压缩选项的情况下使用它呢?

rsync -az --progress source_dir/* remote_host:/destination_dir

这还有一个好处,就是如果文件已经存在并且在目标位置上没有更改,则将不会传输该文件。


7

感谢@ johnshen64的回答,我得以提出一些相当不错的东西

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

不幸的是,这并没有显示进度。我已经注意到使用这种方法的速度有了惊人的提高。

如果有人知道如何显示这样的转移进度,我将非常感谢您的帮助:)


1
插入tarsshpv之间。
user1686

如果您没有rsync,
那就太好了

2

好吧,我会改用tar

tar cf-目录| ssh服务器'tar xf-'

您可以添加v进行验证。

zip应该是相同的,但我认为tar对于linux更为健壮。


+1感谢您的帮助;这把我带到了一半。我能够提出一种不使用神秘-字符,也使用gzip压缩并允许定位目标目录的解决方案。
Macek

@macek:请注意,f -这在其他操作系统上可能是必需的,因为大多数tar版本会尝试从磁带机读取数据。默认情况下,从stdin读取是GNU特定的。
user1686
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.