tar [man page] - The GNU version of the tar archiving utility


tar  [ - ] A --catenate --concatenate | c --create 
| d --diff --compare | --delete | r --append
| t --list | u --update | x --extract --get [ options ]
pathname [ pathname ... ]

Frequently used options

-f, --file [HOSTNAME:]F
use archive file or device F (default "-",
meaning stdin/stdout)
-j, --bzip2 filter archive through bzip2,
use to decompress .bz2 files.
-N, --after-date DATE, --newer DATE
only store files newer than DATE
-v, --verbose
verbosely list files processed
-w, --interactive, --confirmation
ask for confirmation for every action
-z, --gzip, --gunzip, --ungzip
filter the archive through gzip


For the sake of simplicity we show linux tar examples without using a tape drive. Many of the tar examples can be translated to use tape drive. For example: Create a archive of /etc/ directory to a file etc.tar

tar -cf etc.tar /etc 

to create a archive to the tape (/dev/st0 ) instead of archive file we can translate this command to:

tar -cf /dev/st0 /etc 

During this tar tutorial we will use "archivewithtar/" directory as sample directory. Here is a content of this sample directory: archive directory with tar
Create an archive to linuxtarfile.tar file of the archivewithtar/ directory:

tar cf linuxtarfile.tar archivewithtar/ 

archive directory with tar to a file
To see what files are being archived by tar command we can use - v ( tar verbose mode ):

tar cf linuxtarfile.tar archivewithtar/ 

tar archive with verbose mode
To instruct tar command to list all files within a archive file we can use command:

tar tf linuxtarfile.tar 

make tar to list all files within an archive
To extract just particular files from a tar archive file we need to replace "c" option with "x". Here we extract archivewithtar/dmesg to a restore/ directory.

tar xvf linuxtarfile.tar archivewithtar/dmesg 

tar - extract just particular file
Extract entire contents of the tar archive linuxtarfile.tar file to restore/ directory:

tar xvf ../linuxtarfile.tar 

Extract entire contents of the tar archive
Linux tar archive command does not use compression by default. Most commonly used compression types with tar command are -z ( gzip ) and -j ( bzip2 ). Create compressed archive of archivewithtar/ with gzip and bzip2:

tar czf linuxtarfile.tar.gz archivewithtar/ tar cjf linuxtarfile.tar.bz2 archivewithtar/ 

Compare the size of all three tar archives files: no compression, gzip and bzip2: create compressed archive with tar
The approach to extract files from compressed tar archive is the same as to extract data from non-compressed tar archive. Here we extract files from gzip compressed tar archive file:

tar xvzf linuxtarfile.tar.gz 

extract compressed archive with tar
Linux tar archive command can create simple incremental or differential backup with -N or --newer option. Let's consider two files in our archivewithtar/ which have different change time:

simple tar incremental or differential backup
Use tar to archive files newer than "7.2.2008 13:54:00" ( make sure to you use correct tar date format !):

tar cvf linuxtarfile.tar --newer  "2008-02-07 13:54:00" archivewithtar/  

simple tar incremental or differential backup newer
Tar command in interactive mode gives us an option which files to extract:

tar xvjwf linuxtarfile.tar.bz2 

interactive tar to extract particular files
Use -p ( --preserve-permissions )tar option to preserve permissions file permission:

tar czfp linuxtarfile.tar.gz archivewithtar/ 
Submit your RESUME, create a JOB ALERT or subscribe to RSS feed.
Subscribe to NEWSLETTER and receive latest news, jobs, career advice and tutorials.
Get extra help by visiting our LINUX FORUM or simply use comments below.