Tar, Zip and Gunzip

This week, I will discuss file archiving, compression, and

decompression using the tar, zip and gunzip utilities.


The tar (tape archive) command assembles several files into a single

file. Such a file is called a "tar file", or "tarball", and has a .tar

extension. By default, the tar utility doesn't compress the archived

files; it merely stores them in a single physical file. The following

command packs all the current directory files having a .txt extension

into a single tar file called mydocs.tar:

tar cvf mydocs.tar *.txt

To list the contents of a tar file, use the "t" (type) flag:

tar tvf mydocs.tar

To extract the contents of a tar file's, use the "x" (extract) flag:

tar xvf mydocs.tar


The gzip command compresses a file. Unlike the tar command, gzip

replaces the original file with its compressed version. The following

command creates a compressed file called myprog.c.gz and deletes the

original myprog.c file:

gzip myprog.c

You can control the compression level by specifying a number between


gzip -9 myprog.c

A value of 9 indicates maximum compression, while 1 indicates minimal

compression. Maximum compression is slower but produces a smaller file.

The default is 6.

The gzip command can compress tar files as well. This is useful, for

example, when you want to distribute the source files of an entire

application in a compact form. A tarball compressed by gzip typically

has the extension tar.gz. The following command creates a compressed

file called mydir.tar.gz and deletes the original mydir.tar file:

gzip mydir.tar

Files with two extensions are problematic for some Web browsers and

mail clients. In that case, you may use a .tgz extension instead of

tar.gz. The following two files are identical:



You can combine the archiving and compression operations into a single

tar command by adding the "z" flag. The following command bundles all

the files having a .c extension into a tarball and compresses it. The

resulting file is myapp.tar.gz:

tar czvf myapp.tar.gz *.c


The gunzip command decompresses a .gz file and replaces it with the non-

compressed file. The following command restores the file myprog.c. from

myprog.c.gz and deletes the latter:

gunzip myprog.c.gz


An older tool called "compress" is used on some Unix systems. Files

created with this command have the extension .Z (capital Z). Similarly,

a tar file compressed with the compress command looks like this:


Under Linux, you would normally use .gz files; however, some legacy

applications that were developed for other Unix flavors and were ported

to Linux may still use this convention.

ITWorld DealPost: The best in tech deals and discounts.
Shop Tech Products at Amazon