02. Compressing Files gzip, gunzip, zcat, zless


The most popular Unix File compression command is gzip. gzip repalces the original file with a compressed version, which has a .gz file extension.

$ ls -l
-rw-r--r--  1 JohnDoe       staff   285 May  9 13:27 README.md
-rw-r--r--  1 JohnDoe       staff  6459 May  9 13:27 index.html
-rw-r--r--  1 JohnDoe       staff  5341 May  9 13:27 todo.txt
$ gzip README.md todo.txt index.html
$ ls -l
-rw-r--r--  1 JohnDoe  staff    56 May  9 13:27 README.md.gz
-rw-r--r--  1 JohnDoe  staff  2626 May  9 13:27 index.html.gz
-rw-r--r--  1 JohnDoe  staff  2113 May  9 13:27 todo.txt.gz

As you can see, the files have been individually compressed. Note, however, that you can't gzip a folder.


To reverse a file back to its uncompressed form, use gunzip. The uncompressed file will have the same permissionas and timestamp as when it was gzipped.

$ gunzip README.md index.html todo.txt
-rw-r--r--  1 JohnDoe  staff   285 May  9 13:27 README.md
-rw-r--r--  1 JohnDoe  staff  6459 May  9 13:27 index.html
-rw-r--r--  1 JohnDoe  staff  5341 May  9 13:27 todo.txt

Note how we don't need to specify the .gz in the filename, as that is already assumed.


There are several options you can use with gzip. Here are a list of the most common ones - be sure to check the man page for more.

Write output to standard output and keep original files.
Decompress - same as using gunzip.
Force overwriting and compress links.
Display usage information. may also be specified with --help
Retail original files.
List the compression ratio for each file compressed.
Recursively compress files in the directory.
Test the integrity of a compressed file.
Set amount of compression. number is an integer in the range of 1 to 9. 1 is fastest, but has the least compression. 9 is slowest with the most compression. The default is 6.

Keeping original files

Suppose you want to keep the original files, and make an extra copy for the gzipped ones. Simply pass in the -k option.

$ gzip -k README.md
$ ls 
README.md   README.md.gz  

Viewing compression ratio

We can view the compression ratio with the -l option.

$ gzip index.html.gz
$ gzip -l index.html.gz
  compressed uncompressed  ratio uncompressed_name
        2626         6459  59.3% index.html
$ gzip -l README.md.gz
compressed uncompressed  ratio uncompressed_name
        56          285  80.3% README.md

Seeing our ratio, we can tell that our README.md file must have a lot of repeated elements!

zcat and zless

zcat is the same as using gunzip -c. It will unzip your file and print to standard out.

$ zcat README.md.gz | less
# unzipped and now you can read with less
$ zless 
# same function as above

Compressing already compressed files

Make sure you don't compress an already compressed format. File types such as .mp3 and .jpeg have already been compressed, so a further compression may cause the file to become larger.

As you can tell, gzip was not meant to compress a group of multiple files - we use the tar command for that, which we'll see in the next lesson.

Take your Linux skills to the next level!

System Admin Handbook

Take your Linux skills to the next level! Try Linux & UNIX

This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, and much more.

$ Check price
74.9974.99Amazon 4.5 logo(142+ reviews)

More Linux & UNIX resources

Aching back from coding all day?

Self-Massage Tool

Aching back from coding all day? Try Back Problems

Relieve spasms, tight muscles, trigger points and pressure points with the Body Back Buddy! This trigger point massage is designed to help you self-message any area of your body - especially those that are hard to reach. Keeping your muscles relaxes and out of contraction is importan in helping to reduce pain and prevent muscle injury.

$ Check price
29.9529.95Amazon 4.5 logo(3,443+ reviews)

More Back Problems resources