How to Compress and extract tar files in Linux

This post shows how to compress and extract files in Linux. Most users use tar to compress files to save disk space or to save network bandwidth if they are transferring files over the network. Files are compressed before they are added to the archive.

The tar command is one of the most commonly used commands in Linux to compress files to create archives. Archives are usually created for backup or transferring files. The tar command uses compression utilities such as the gzip and bzip2 to compress files before adding them to the archive.

In this post, we will use two types of utilities to compress the files.

  1. tar – archive and extract files using tar command
  2. gzip – use gzip to compress and extract files. It compresses faster but provides a low compression ratio.
  3. bzip2 – use bzip2 to compress and extract files. It compresses slower but provides a high compression ratio.
  4. How to exclude directories and files using tar
  5. How to view stored files in an archive

1. Archive and extract files using tar command

To archive all the files in the folder –
tar -cvf filename.tar /path/to/dir/

To extract archive using tar command

tar -tvf filename.tar


eg. To archive all the files in the folder

[root@centos]#ls ==> ls to view files in folder
file1.yaml  file2.txt
[root@centos]# tar -cvf file.tar /root/linux/arch/
tar: Removing leading `/' from member names
/root/
/root/file1.yaml
/root/file2.txt

Process of Archiving files is completed and you can see the archived file with name file.tar by using ls command

[root@centos]# ls
file.tar  file1.yaml  file2.txt

2. Using gzip to compress and extract tar archives

To use the gzip utility to compress files before adding them to the archive,  z will be used with the options cvf.
Use the extension .gz with the archive file name to indicate that the gzip compression is used.

Say you want to compress an entire directory named /home/networkhunt/data/:

$ tar -czvf file.tar.gz /home/networkhunt/data/

To compress multiple directories and files, execute:

$ tar -czvf file.tar.gz /home/networkhunt/data/ /home/networkhunt/pics/ /home/networkhunt/.accounting.db

To extract the gzip tar file

$ tar -xzvf file.tar.gz

3. Using bzip2 to compress and extract tar archives

To create and compress the archive file with the bzip2 compression, we have to use the option j with options cvf and use the file extension .bz2 with the archive file name.

$ tar -cjvf file.tar.bz2 /home/networkhunt/data/

To extract .bz2 tar files

$ tar -jtvf file.tar.bz2

4. How to exclude directories and files when using tar

sometimes we want to exclude certain files when creating a tarball. The syntax is:

$ tar -zcvf archive.tar.gz –exclude=’dir1′ –exclude=’regex’ dir1

For example, exclude ~/Downloads/ directory:

$ tar -czvf /nfs/backup.tar.gz --exclude="Downloads" /home/networkhunt/

5. How to view stored files in an archive?

Below commands can be used to view files stored in an archive without extracting.
To List the contents of a tar.gz file, -ztvf is used in tar command to view the contents of tar.gz files and to list the contents of a tar.bz2 file, -jtvf is used in tar command.

$ tar -ztvf file.tar.gz
$ tar -jtvf file.tar.bz2

Leave a Comment