tar command in Linux.
This is one of the most commonly using Linux command. This is very similar to the ZIP concept in Windows platform, what we are using commonly to save multiple file together.
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. Also, by using TAR we can compress and decompress files and make a single file archive to transfer file.
In Linux almost all packages are available in internet in TAR file format. You need to download the file from internet using WGET command and then need to extract it for installation. You can use the switch “xf” to extract a tar file.
In this post I am listing some commonly using TAR command switches 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
Creates 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
Deletes 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
Tests 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
10+ useful grep command options with examples – Unix/Linux
The grep command is one of the most widely using Linux command. The name GREP is the abbreviation of Global Regular Expression Pattern. Yep! it’s pattern search tool under Unix.
By-default the grep command lists all matching lines from the input file or files. A lot of switches are available to lists or find matching information from a file using the command GREP.
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
Filters 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
Does 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
That’s it!! 🙂
Other useful commands:
groupdel, groupmems, groupmod, useradd , usermod , chgrp, chown, ls, head, tail, top, ps, find, crontab, ftp commands
Useful stuff. Thanks!