我正在使用 rsync 在服务器之间复制文件,我使用-z
仅在网络传输阶段压缩数据的选项。
但我想将压缩文件保留在远程机器上,但我在 rsync 中没有找到此选项。
这可能吗 ?
答案1
不可以。您需要在传输数据之前或之后对其进行压缩。
答案2
简短回答:不是。
长答案:据我了解http://zlib.net/zlib_faq.html,zlib 并不真正压缩文件,而是压缩流的块。您无法确定文件的完整版本是否存在于压缩状态的某个地方(想想发送 200GB 的 mp3 文件:您需要 190GB 的可用空间吗?)。
答案3
之所以不可能,主要原因是 的性质rsync
。摘自以下man
页面:
它以其增量传输算法而闻名,该算法通过仅发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量。
除非这是您第一次传输这些文件,否则只会发送更改。如果您能以某种方式保存数据流,那么您最终会得到一种压缩的差异文件,这种文件没有任何特别的用处。
在将文件传递给之前对其进行压缩rsync
。