Gzip is an implementation of the Lempel-Ziv coding algorithm, it compresses files. The Mac OS X implementation of gzip varies a little from their *nix counterparts and it's a little tricky to use so I made this little guide to help myself. If I messed something up, please fork it and fix it!.
The most basic command will compress the file
filename.ext and then replace it with
filename.ext.gz in the same directory.
If you don't want to lose your original file, then you need to pipe the output of
gzip -c to a file.
gzip -c filename.ext > anotherfile.gz
We can also compress from standard input, so we can compress the output of other commands.
cat filename.ext | gzip > anotherfile.gz
OS X also comes with the
uncompress commands. They make for a "smarter" gzip, as it doesn't compress the file if it would grow after the compression process. The following command replaces
filename.ext.Z in the same directory.
To restore a file to it's uncompressed natural state you can use gzip or other of the wrappers. The decompression mode of gzip is called with the
-d flag. This mode will replace the file
filename.ext in the same directory. There's also a shortcut called
gunzip that will do the same.
gzip -d filename.ext.gz
We can also pipe the decompressed file to the standard output to save it to another file.
gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile
Another quick way of reading the content of a gzip to standard output is
zcat, it's basically the same as calling
gzip -cd but you can call multiple files and have them concatenated the same way as the
cat command concats text files. The only drawback is that your files need to be suffixed with the
.Z suffix for it to work...
zcat file_a.Z file_b.Z file_c.Z
But fear not!
zcat it's still useful, because it can decompress from standard output. So you can basically pipe your files to zcat to have them decompressed on the terminal window.
cat filename.ext.gz | zcat
This is very useful if you need to check the content of a file really quick, and you can even save the output of zcat to a file, just as easy.
cat filename.ext.gz | zcat > anotherfile
uncompress wrapper works like
gzip -cd but it looks for files with the .Z extension to replace them in the current directory, so you only need to specify the file name you want to restore, but it's alright if you call it with the .Z extension, as the program will ignore it.
I hope you find my guide useful :)