Linux commands: gzip
By Flavio
Published · Updated
Tagged: CLI
Learn how the Linux gzip command compresses a file into a .gz archive, how to keep the original with -k, set a level from 1 to 9, and decompress with -d.
You can compress a file with the gzip command. gzip is a file format. It compresses with the DEFLATE algorithm (LZ77 plus Huffman coding).
Here’s the simplest usage:
gzip filename
This will compress the file, and append a .gz extension to it. The original file is deleted. To prevent this, you can use the -c option and use output redirection to write the output to the filename.gz file:
gzip -c filename > filename.gz
The
-coption specifies that output will go to the standard output stream, leaving the original file intact
Or you can use the -k option:
gzip -k filename
There are various levels of compression. The more the compression, the longer it will take to compress (and decompress). Levels range from 1 (fastest, worst compression) to 9 (slowest, better compression), and the default is 6.
You can choose a specific level with the -<NUMBER> option:
gzip -1 filename
You can compress multiple files by listing them:
gzip filename1 filename2
You can compress all the files in a directory, recursively, using the -r option:
gzip -r notes
That compresses each file in place. You get notes/todo.txt.gz and notes/ideas.txt.gz, and the folder stays. That is not one archive.
The -v option prints the compression percentage information. Here’s an example of it being used along with the -k (keep) option:

gzip can also be used to decompress a file, using the -d option. gunzip is the same command:
gzip -d filename.gz
To pack a folder first, use tar and then gzip, or tar -czf.
The gzip command works on Linux, macOS, WSL, and anywhere you have a UNIX environment
Want me to talk about your product? You can sponsor this site.
Related posts about cli: