148

Is it possible to compress (create a compressed archive) data while reading from stdin on Linux?

Alex Riley
  • 169,130
  • 45
  • 262
  • 238
Space
  • 7,049
  • 6
  • 49
  • 68

3 Answers3

218

Yes, use gzip for this. The best way is to read data as input and redirect the compressed to output file i.e.

cat test.csv | gzip > test.csv.gz

cat test.csv will send the data as stdout and using pipe-sign gzip will read that data as stdin. Make sure to redirect the gzip output to some file as compressed data will not be written to the terminal.

Alex Riley
  • 169,130
  • 45
  • 262
  • 238
Space
  • 7,049
  • 6
  • 49
  • 68
113

Yes, gzip will let you do this. If you simply run gzip > foo.gz, it will compress STDIN to the file foo.gz. You can also pipe data into it, like some_command | gzip > foo.gz.

jtbandes
  • 115,675
  • 35
  • 233
  • 266
1

gzip > stdin.gz perhaps? Otherwise, you need to flesh out your question.

retracile
  • 12,167
  • 4
  • 35
  • 42