Linux Blog

TAR

Section: User Commands (1)
Updated: 22 September 1993
Index Return to Main Contents
 

NAME

tar - The GNU version of the tar archiving utility  

SYNOPSIS

tar [ - ] A --catenate --concatenate | c --create | d --diff --compare | r --append | t --list | u --update | x -extract --get [ --atime-preserve ] [ -b, --block-size N ] [ -B, --read-full-blocks ] [ -C, --directory DIR ] [ --checkpoint     ]
[ -f, --file [HOSTNAME:]F ] [ --force-local    ]
[ -F, --info-script F --new-volume-script F ] [ -G, --incremental ] [ -g, --listed-incremental F ] [ -h, --dereference ] [ -i, --ignore-zeros ] [ -j, --bzip2 ] [ --ignore-failed-read ] [ -k, --keep-old-files ] [ -K, --starting-file F ] [ -l, --one-file-system ] [ -L, --tape-length N ] [ -m, --modification-time ] [ -M, --multi-volume ] [ -N, --after-date DATE, --newer DATE ] [ -o, --old-archive, --portability ] [ -O, --to-stdout ] [ -p, --same-permissions, --preserve-permissions ] [ -P, --absolute-names ] [ --preserve       ]
[ -R, --record-number ] [ --remove-files ] [ -s, --same-order, --preserve-order ] [ --same-owner ] [ --numeric-owner ] [ -S, --sparse ] [ -T, --files-from F ] [ --null   ]
[ --totals         ]
[ -v, --verbose ] [ -V, --label NAME ] [ --version        ]
[ -w, --interactive, --confirmation ] [ -W, --verify     ]
[ --exclude FILE ] [ -X, --exclude-from FILE ] [ -Z, --compress, --uncompress ] [ -z, --gzip, --ungzip     ]
[ --use-compress-program PROG ] [ --block-compress ] [ -[0-7][lmh]      ]
filename1 [ filename2, ... filenameN ]
directory1 [ directory2, ...directoryN ]
 

DESCRIPTION

This manual page documents the GNU version of tar , an archiving program designed to store and extract files from an archive file known as a tarfile. A tarfile may be made on a tape drive, however, it is also common to write a tarfile to a normal file. The first argument to tar must be one of the options: Acdrtux, followed by any optional functions. The final arguments to tar are the names of the files or directories which should be archived. The use of a directory name always implies that the subdirectories below should be included in the archive.  

EXAMPLES

tar -xvvf foo.tar
extract foo.tar
tar -xvvzf foo.tar.gz
extract gzipped foo.tar.gz
tar -cvvf foo.tar foo/
tar contents of folder foo in foo.tar
 

FUNCTION LETTERS

One of the following options must be used:
-A, --catenate, --concatenate
append tar files to an archive
-c, --create    
create a new archive
-d, --diff, --compare
find differences between archive and file system
--delete                
delete from the archive (not for use on mag tapes!)
-r, --append            
append files to the end of an archive
-t, --list              
list the contents of an archive
-u, --update            
only append files that are newer than copy in archive
-x, --extract, --get            
extract files from an archive
 

OTHER OPTIONS

--atime-preserve       
don't change access times on dumped files
-b, --block-size N      
block size of Nx512 bytes (default N=20)
-B, --read-full-blocks  
reblock as we read (for reading 4.2BSD pipes)
-C, --directory DIR     
change to directory DIR
--checkpoint            
print directory names while reading the archive
-f, --file [HOSTNAME:]F 
use archive file or device F (default "-", meaning stdin/stdout)
--force-local           
archive file is local even if has a colon
-F, --info-script F --new-volume-script F
run script at end of each tape (implies -M)
-G, --incremental       
create/list/extract old GNU-format incremental backup
-g, --listed-incremental F
create/list/extract new GNU-format incremental backup
-h, --dereference       
don't dump symlinks; dump the files they point to
-i, --ignore-zeros      
ignore blocks of zeros in archive (normally mean EOF)
-j, --bzip2
filter archive through bzip2, use to decompress .bz2 files
--ignore-failed-read    
don't exit with non-zero status on unreadable files
-k, --keep-old-files    
keep existing files; don't overwrite them from archive
-K, --starting-file F   
begin at file F in the archive
-l, --one-file-system   
stay in local file system when creating an archive
-L, --tape-length N     
change tapes after writing N*1024 bytes
-m, --modification-time 
don't extract file modified time
-M, --multi-volume      
create/list/extract multi-volume archive
-N, --after-date DATE, --newer DATE     
only store files newer than DATE
-o, --old-archive, --portability        
write a V7 format archive, rather than ANSI format
-O, --to-stdout         
extract files to standard output
-p, --same-permissions, --preserve-permissions
extract all protection information
-P, --absolute-paths    
don't strip leading `/'s from file names
--preserve              
like -p -s
-R, --record-number     
show record number within archive with each message
--remove-files          
remove files after adding them to the archive
-s, --same-order, --preserve-order      
list of names to extract is sorted to match archive
--same-owner            
create extracted files with the same ownership
--numeric-owner
always use numbers for user/group names
-S, --sparse            
handle sparse files efficiently
-T, --files-from F      
get names to extract or create from file F
--null                  
-T reads null-terminated names, disable -C
--totals                
print total bytes written with --create
-v, --verbose           
verbosely list files processed
-V, --label NAME        
create archive with volume name NAME
--version               
print tar program version number
-w, --interactive, --confirmation       
ask for confirmation for every action
-W, --verify            
attempt to verify the archive after writing it
--exclude FILE          
exclude file FILE
-X, --exclude-from FILE 
exclude files listed in FILE
-Z, --compress, --uncompress       
filter the archive through compress
-z, --gzip, --ungzip            
filter the archive through gzip
--use-compress-program PROG
filter the archive through PROG (which must accept -d)
--block-compress        
block the output of compression program for tapes
-[0-7][lmh]             
specify drive and density
 

BUGS

The GNU folks, in general, abhor man pages, and create info documents instead. The maintainer of tar falls into this category. This man page is neither complete, nor current, and was included in the Debian Linux packaging of tar entirely to reduce the frequency with which the lack of a man page gets reported as a bug in our defect tracking system.

If you really want to understand tar, then you should run info and read the tar info pages, or use the info mode in emacs.


 

Index

NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
FUNCTION LETTERS
OTHER OPTIONS
BUGS