The ‘tar’ saves many files together into a single tape or disk archive, and can restore individual files from the archive. It is very useful in such conditions like when we want to send a lot of files via email, transfer files from one machine to another etc. Here I am explaining some common and useful switches and it usages with examples.
Syntax:
# tar [options] file.tar file1 file2 .. .. ..
Where file.tar is the tar file and file1 and file2 .. .. are the files to make a tar.
I have created two files file1.txt and file2.txt for making examples.
[root@localhost TAR]# ll
total 8
-rw-r--r--. 1 root root 2770 Feb  7 22:37 file1.txt
-rw-r--r--. 1 root root  887 Feb  7 22:38 file2.txt
Common usages of tar command:
How to create a tar file ?
Syntax:
# tar -cf archive.tar files .. ..
Example:
[root@localhost TAR]# tar -cf file.tar file1.txt file2.txt
[root@localhost TAR]# ll file.tar 
-rw-r--r--. 1 root root 10240 Feb  7 22:42 file.tar
How to list all files in an archive.tar ?
# tar -tf archive.tar
Example:
[root@localhost TAR]# tar -tf file.tar 
file1.txt
file2.txt
How to extract all files from archive.tar ?
tar -xf archive.tar
Example:
[root@localhost TAR]# tar -xf file.tar 
[root@localhost TAR]# ll
total 20
-rw-r--r--. 1 root root  2770 Feb  7 22:37 file1.txt
-rw-r--r--. 1 root root   887 Feb  7 22:38 file2.txt
-rw-r--r--. 1 root root 10240 Feb  7 22:42 file.tar
Switches with example:
1, -v, –verbose
verbosely list files processed:
Syntax:
List all files in an archive.tar verbosely:
tar -tvf archive.tar
Example:
[root@localhost TAR]# tar -tvf file.tar 
-rw-r--r-- root/root      2770 2014-02-07 22:37 file1.txt
-rw-r--r-- root/root       887 2014-02-07 22:38 file2.txt
2, -c, –create
create a new archive.
3, -t, –list
list the contents of an archive.
4, -x, –extract, –get
extract files from an archive.
5, -d, –diff, –compare
find differences between archive and file system.
Example:
[root@localhost TAR]# tar -tf file.tar 
file2.txt
file3.txt
file1.txt
[root@localhost TAR]# tar -df file.tar file1.txt file2.txt file4.txt
tar: file4.txt: Not found in archive
tar: Exiting with failure status due to previous errors
----Verbosely----
[root@localhost TAR]# tar -dvf file.tar file1.txt file2.txt 
file2.txt
file1.txt
[root@localhost TAR]# tar -dvf file.tar file1.txt file2.txt file6.txt
file2.txt
file1.txt
tar: file6.txt: Not found in archive
tar: Exiting with failure status due to previous errors
6, –delete
delete from the archive (not on mag tapes!)
Example:
Delete file1.txt from the archive file.tar
[root@localhost TAR]# tar --delete -f  file.tar  file1.txt 
[root@localhost TAR]# tar -tf file.tar
file2.txt
7, -r, –append
Append files to the end of an archive.
Example:
Append file3.txt to file.tar
[root@localhost TAR]# tar -rf file.tar file3.txt
[root@localhost TAR]# tar -tf file.tar
file1.txt
file2.txt
file3.txt
8, -A, –catenate, –concatenate
Append tar files to an archive.
Create another tar file
[root@localhost TAR]# tar -cf archive.tar file1.txt file3.txt 
Append tar file to an archive.
[root@localhost TAR]# tar -Af file.tar archive.tar
[root@localhost TAR]# tar -tf file.tar 
file2.txt
file3.txt
file1.txt
file1.txt
file3.txt
9, –test-label
test the archive volume label and exit.
10, -u, –update
Only append files newer than copy in archive.
Example:
[root@localhost TAR]# tar -tf file.tar 
file1.txt
file2.txt
[root@localhost TAR]# tar -uf file.tar file1.txt file3.txt file2.txt
[root@localhost TAR]# tar -tf file.tar 
file1.txt
file2.txt
file3.txt
11, -C, –directory=DIR
Change to directory DIR.
Example:
Extract files to another directory:
[root@localhost TAR]# tar -xvf file.tar -C /root/TAR2
file1.txt
file2.txt
[root@localhost TAR]# cd -
/root/TAR2
[root@localhost TAR2]# ll
total 28
-rw-r--r--. 1 root root 23250 Feb  7 23:11 file1.txt
-rw-r--r--. 1 root root   887 Feb  7 22:38 file2.txt
12, -p, –preserve-permissions
Extract information about file permissions (default for superuser)
Create archive with compression:
It is very helpful to make an archive of files which has comparatively large size. Commonly using compression methods are “BZIP” and “GZIP”.
Switches with examples, compression related.
13, -j, –bzip2
filter the archive through bzip2
Example:
[root@localhost TAR]# tar -jcf file.tar.bz file2.txt file1.txt
[root@localhost TAR]# ll
total 128
-rw-r--r--. 1 root root 23250 Feb  7 23:11 file1.txt
-rw-r--r--. 1 root root   887 Feb  7 22:38 file2.txt
-rw-r--r--. 1 root root 30720 Feb  7 23:30 file.tar
-rw-r--r--. 1 root root  1797 Feb  7 23:42 file.tar.bz
See, the tar file size is decreased to 1797 with BZIP
14, -z, –gzip
filter the archive through gzip
Example:
[root@localhost TAR]# tar -zcf file.tar.gz file2.txt file1.txt
[root@localhost TAR]# ll
total 132
-rw-r--r--. 1 root root 23250 Feb  7 23:11 file1.txt
-rw-r--r--. 1 root root   887 Feb  7 22:38 file2.txt
-rw-r--r--. 1 root root 30720 Feb  7 23:30 file.tar
-rw-r--r--. 1 root root  1797 Feb  7 23:42 file.tar.bz
-rw-r--r--. 1 root root  1673 Feb  7 23:45 file.tar.gz