q1)我可以检查一下是否可以 gzip -c文件|加密(一些参数)
a)gzip逐行打印出输出并将其传递给加密函数或
b)gzip将执行1st,然后输出将一次性输出到加密函数?
=============================================== =====
q2)将执行gzip |加密有任何更好的性能考虑因素然后gzip,然后加密
此致 小白
答案 0 :(得分:2)
Gzip是一个流式压缩器/解压缩器。因此(对于足够大的输入)压缩器/解压缩器在看到整个输入之前开始写输出。
这是gzip压缩用于HTTP压缩的原因之一。发件人可以在仍在生成内容时进行压缩;收件人可以解压缩内容的第一部分,同时仍然接收其余部分。
Gzip不能“逐行”工作,因为它不知道一行是什么。但它确实工作“chunk-by-chunk”,压缩器定义了块的大小。
“表现”一词太含糊,而且面积过于复杂,无法给出答案。
对于gzip -c file | encrypt
,对于足够大的文件,encrypt
和gzip
会同时发挥作用。也就是说,encrypt
将在 gzip
压缩最后一个文件块之前加密第一个压缩块。
答案 1 :(得分:0)
管道缓冲区的大小取决于实现。在SunOS下,它是4kB。也就是说:gunzip < file.gz | encrypt
将以4k块的形式移动。同样,它取决于操作系统。 CygWIN可能表现完全不同。
我应该补充说这是man 7 pipe
。搜索 PIPE_BUF 。