How can I compress a whole directory under Linux / UNIX using a shell prompt?

It is very easy to compress a Whole Linux/UNIX directory. It is useful to backup files, email all files, or even to send software you have created to friends. Technically, it is called as a compressed archive. GNU tar command is best for this work. It can be use on remote Linux or UNIX server. It does two things for you:

=> Create the archive

=> Compress the archive

You need to use the tar command as follows (syntax of tar command):

tar -zcvf archive-name.tar.gz directory-name


-z : Compress archive using gzip program
-c: Create archive
-v: Verbose i.e display progress while creating archive
-f: Archive File name

For example, say you have a directory called /home/web/site and you would like to compress this directory then you can type tar command as follows:

$ tar -zcvf site-1-jan-2017.tar.gz /home/web/site

Above command will create an archive file called site-1-jan-2017.tar.gz in current directory.
If you wish to restore your archive then you need to use the following command (it will extract all files in current directory):

$ tar -zxvf site-1-jan-2017.tar.gz


-x: Extract files

If you wish to extract files in particular directory, for example in /tmp then you need to use the following command:

$ tar -zxvf site-1-jan-2017.tar.gz -C /tmp
$ cd /tmp
$ ls -

A note about non gnu/tar command

The above syntax use GNU tar command for compressing and uncompressing tar files. If your system does not use GNU tar, you can still create a compressed tar file, via the following syntax:

tar -cvf - file1 file2 dir3 | gzip > archive.tar.gz

This article was last modified: Feb. 8, 2017, 5:59 p.m.

Add or change tags.

A comma-separated list of tags.


Hacker News