从STDIN读取数据时压缩文件

Spa*_*ace 121 linux compression stdin

是否可以在从Linux上的stdin读取时压缩(创建压缩归档)数据?

Spa*_*ace 168

是的,请使用gzip.最好的方法是将数据作为输入读取并将压缩文件重定向到输出文件,即

cat test.csv | gzip > test.csv.gz
Run Code Online (Sandbox Code Playgroud)

cat test.csv将数据作为stdout发送并使用pipe-sign gzip将该数据作为stdin读取.确保将gzip输出重定向到某个文件,因为压缩数据不会写入终端.

  • 这也适用于`xz`:`mysqldump mydb | xz> dbdump.sql.xz` (9认同)
  • 请注意,test.csv.gz文件保持0大小,直到数据通量关闭. (3认同)
  • 可以使用`-9`,默认压缩级别是`-6`。 (2认同)

jtb*_*des 110

是的,gzip会让你这样做.如果你只是运行gzip > foo.gz,它会将STDIN压缩到文件foo.gz. 您也可以将数据传输到其中,例如some_command | gzip > foo.gz.