持续压缩 stderr 流

持续压缩 stderr 流

是否有某种方法可以持续压缩程序的输出(几乎实时)?

例如,我有这个程序,它会向 stderr 产生(大量)输出。我想做类似的事情./my-program 2> tar -<someoptions> stderroutput.tar.gz

答案1

如果我理解正确的话,您想要压缩标准错误流的内容并将其保存到文件中。如果是这样,请尝试以下操作: ./my-program 2>&1 | gzip > stderroutput.gz

答案2

tar不压缩数据;它仅用于存档多个文件合二为一。要压缩流,您需要使用gzipxzbzip2类似的。(虽然gzip压缩率最差,但也是最快的之一,因此它可能是这里的最佳选择。)

例如:

myapp 2> >(gzip > stderr.gz)

或者

(myapp 2>&1 1>&3 | gzip > stderr.gz) 3>&1

相关内容