微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – tar | gpg | bzip2比单独执行每一步使用更多内存?

我有一堆文件,我经常需要tar,用gpg加密,然后压缩.这是在Linus VPS服务器上,因此内存比执行速度更重要(我真的不关心).

如果我执行这三个步骤作为一个命令(tar | gpg | bzip2> output.tar.gpg.bzip2)会比我第一次调用tar消耗更多内存,那么调用gpg,然后调用bzip2?

这些文件可能非常大(数百兆字节/千兆字节)

解决方法

同时运行的程序越多,所需的内存就越多.但这是一种权衡,使用管道而不是单独运行每个程序往往需要更少的磁盘空间.您只需要存储初始输入和最终输出.如果您通过ssh或类似的东西进行管道传输以将数据存储在其他地方,则甚至可能不需要输入文件之外的初始磁盘空间.使用管道的另一个特性是数据在任何阶段都不会比管道中最慢的阶段更快地处理.

GnuPG使用的OpenPGP格式本身支持压缩.这在加密之前发生,因此它比加密后压缩更安全,效率更高.此外,它将在解密时自动检测,因此您不必担心将其添加到管道中.它可能比运行单独的压缩程序需要更少的内存. GnuPG支持Zip,Zlib(Gzip)和Bzip2压缩.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐