How to Extract and Decompress DEFLATE File in Terminal
How can we extract the contents of a file compressed using DEFLATE?
Suppose we have a file compressed using DEFLATE: file.json.deflate
.
At the end, read about how to save the uncompressed, output file and store our deflate command as a useful alias.
1. Using pigz
pigz -d < file.json.deflate
We may have to install pigz
to use this command (e.g. on macOS, brew install pigz
).
2. Using zlib-deflate
zlib-flate -uncompress < file.json.deflate
We may have to install qpdf
to use zlib-deflate
(e.g. on macOS, brew install qpdf
).
3. Using perl
perl -MCompress::Zlib -e 'undef $/; print uncompress(<>)' < file.json.deflate
4. Using python
/python3
python -c "import zlib,sys;print(zlib.decompress(sys.stdin.buffer.read()).decode('utf8'))" < file.json.deflate
6. Using ruby
ruby -rzlib -e 'print Zlib::Inflate.new.inflate(STDIN.read)' < file.json.deflate
Save output file
We can save the contents to a file by redirecting the output to something like file.json
.
To do this, simply add > file.json
to the end of each command.
Save deflate
command as an alias
We might have noticed that all the commands redirect the file contents using the left angle bracket < file.json.deflate
.
We can rewrite these commands using cat
and a pipe |
.
pigz -d < file.json.deflate
# Same as
cat file.json.deflate | pigz -d
With that in mind, we can create a deflate
alias for the command we want to use. Then, we can simply use deflate
after a cat
to decompress the file.
alias deflate="pigz -d"
cat file.json.deflate | deflate
cat file.json.deflate | deflate > file.json