如何将程序的输出重定向到 ZIP 文件?

如何将程序的输出重定向到 ZIP 文件?

我正在运行一个脚本,该脚本正在收集服务器的日志。我需要将这些日志重定向到 ZIP 文件。现在我正在将数据收集到文本文件中。

如何将其直接重定向到 ZIP?

答案1

使用UnZip 6.00 of 20 April 2009,我能够做到这一点:

$ date | zip jeff.zip -
$ unzip -l jeff.zip
Archive:  jeff.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       29  01-21-2016 13:02   -
---------                     -------
       29                     1 file
$ unzip -p jeff.zip | cat
Thu Jan 21 13:02:31 EST 2016
$ unzip -p jeff.zip > newfilename.here

这用作date收集日志文件的脚本的替代品,大概是标准输出;它将 stdout 发送到 zip,告诉它从 stdin 获取输入而不是文件名(带有-)。 zip 文件的内容没有以任何可识别的名称命名,但数据就在那里。

答案2

您可以直接通过管道传输到gzip,然后将压缩数据重定向到文件:

echo "my not compacted data" | gzip > compact.gz

相关内容