tar - The GNU version of the tar archiving utility


tar [OPTION...] [FILE]...


GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.


tar -cf archive.tar foo bar
# Create archive.tar from files foo and bar.
tar -tvf archive.tar
# List all files in archive.tar verbosely.
tar -xf archive.tar
# Extract all files from archive.tar.
Main operation mode:
-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 from the archive (not on mag tapes!)
-r, --append
append files to the end of an archive
-t, --list
list the contents of an archive
test the archive volume label and exit
-u, --update
only append files newer than copy in archive
-x, --extract, --get
extract files from an archive
Operation modifiers:
-g, --listed-incremental=FILE
handle new GNU-format incremental backup
-G, --incremental
handle old GNU-format incremental backup
do not exit with nonzero on unreadable files
-n, --seek
archive is seekable
process only the NUMBERth occurrence of each file in the archive; this option is valid only in conjunction with one of the subcommands --delete, --diff, --extract or --list and when a list of files is given either on the command line or via the -T option; NUMBER defaults to 1
set version of the sparse format to use (implies --sparse)
-S, --sparse
handle sparse files efficiently
Overwrite control:
-k, --keep-old-files
don't replace existing files when extracting
don't replace existing files that are newer than their archive copies
preserve metadata of existing directories
overwrite existing files when extracting
overwrite metadata of existing directories when extracting (default)
empty hierarchies prior to extracting directory
remove files after adding them to the archive
-U, --unlink-first
remove each file prior to extracting over it
-W, --verify
attempt to verify the archive after writing it
Select output stream:
--ignore-command-error ignore exit codes of children
treat non-zero exit codes of children as error
-O, --to-stdout
extract files to standard output
pipe extracted files to another program
Handling of file attributes:
preserve access times on dumped files, either by restoring the times after reading (METHOD='replace'; default) or by not setting the times in the first place (METHOD='system')
delay setting modification times and permissions of extracted directories until the end of extraction
force NAME as group for added files
force (symbolic) mode CHANGES for added files
set mtime for added files from DATE-OR-FILE
-m, --touch
don't extract file modified time
cancel the effect of --delay-directory-restore option
extract files as yourself
apply the user's umask when extracting permissions from the archive (default for ordinary users)
always use numbers for user/group names
force NAME as owner for added files
-p, --preserve-permissions, --same-permissions
extract information about file permissions (default for superuser)
same as both -p and -s
try extracting files with the same ownership
-s, --preserve-order, --same-order
sort names to extract to match archive
Device selection and switching:
-f, --file=ARCHIVE
use archive file or device ARCHIVE
archive file is local even if it has a colon
-F, --info-script=NAME, --new-volume-script=NAME
run script at end of each tape (implies -M)
-L, --tape-length=NUMBER
change tape after writing NUMBER x 1024 bytes
-M, --multi-volume
create/list/extract multi-volume archive
use given rmt COMMAND instead of rmt
use remote COMMAND instead of rsh
use/update the volume number in FILE
Device blocking:
-b, --blocking-factor=BLOCKS
BLOCKS x 512 bytes per record
-B, --read-full-records
reblock as we read (for 4.2BSD pipes)
-i, --ignore-zeros
ignore zeroed blocks in archive (means EOF)
NUMBER of bytes per record, multiple of 512
Archive format selection:
-H, --format=FORMAT
create archive of the given format
FORMAT is one of the following:
GNU tar 1.13.x format
GNU format as per tar <= 1.12
POSIX 1003.1-2001 (pax) format
same as pax
POSIX 1003.1-1988 (ustar) format
old V7 tar format
-j, --bzip2
filter the archive through bzip2
--old-archive, --portability
same as --format=v7
control pax keywords
same as --format=posix
filter through PROG (must accept -d)
-V, --label=TEXT
create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
-z, --gzip, --gunzip, --ungzip
filter the archive through gzip
-Z, --compress, --uncompress
filter the archive through compress
Local file selection:
add given FILE to the archive (useful if its name starts with a dash)
backup before removal, choose version CONTROL
-C, --directory=DIR
change to directory DIR
exclude files, given as a PATTERN
exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself
exclude directories containing CACHEDIR.TAG
--exclude-caches-under exclude everything under directories containing
exclude contents of directories containing FILE, except for FILE itself
--exclude-tag-all=FILE exclude directories containing FILE
exclude everything under directories containing FILE
-h, --dereference
follow symlinks; archive and dump the files they point to
-K, --starting-file=MEMBER-NAME
begin at member MEMBER-NAME in the archive
compare date and time when data changed only
avoid descending automatically in directories
do not unquote filenames read with -T
--null -T reads null-terminated names, disable -C
-N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE
only store files newer than DATE-OR-FILE
stay in local file system when creating archive
-P, --absolute-names
don't strip leading `/'s from file names
recurse into directories (default)
backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)
-T, --files-from=FILE
get names to extract or create from FILE
unquote filenames read with -T (default)
-X, --exclude-from=FILE
exclude patterns listed in FILE
File name transformations:
strip NUMBER leading components from file names on extraction
--transform=EXPRESSION use sed replace EXPRESSION to transform file
File name matching options (affect both exclude and include patterns):
patterns match file name start
ignore case
patterns match after any `/' (default for exclusion)
case sensitive matching (default)
verbatim string matching
wildcards do not match `/'
use wildcards (default for exclusion)
wildcards match `/' (default for exclusion)
Informative output:
display progress messages every NUMBERth record (default 10)
send verbose output to FILE
-l, --check-links
print a message if not all links are dumped
disable quoting for characters from STRING
additionally quote characters from STRING
set name quoting style; see below for valid STYLE values
-R, --block-number
show block number within archive with each message
show tar defaults
when listing or extracting, list each directory that does not match search criteria
--show-transformed-names, --show-stored-names
show file or archive names after transformation
print total bytes after processing the archive; with an argument - print total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also accepted
print file modification dates in UTC
-v, --verbose
verbosely list files processed
-w, --interactive, --confirmation
ask for confirmation for every action
Compatibility options:
when creating, same as --old-archive; when extracting, same as --no-same-owner
Other options:
-?, --help
give this help list
disable use of some potentially harmful options
give a short usage message
print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control may be set with --backup or VERSION_CONTROL, values are:

none, off
never make backups
t, numbered
make numbered backups
nil, existing
numbered if numbered backups exist, simple otherwise
never, simple
always make simple backups

Valid arguments for --quoting-style options are:

literal shell shell-always c escape locale clocale

*This* tar defaults to: --format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/libexec/rmt --rsh-command=/usr/bin/rsh


Written by John Gilmore and Jay Fenlason.


Report bugs to <bug-tar@gnu.org>. Copyright © 2007 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


The full documentation for tar is maintained as a Texinfo manual. If the info and tar programs are properly installed at your site, the command
info tar

should give you access to the complete manual.