TAR

Section: User Commands (1)
Updated: November 2009
Index Return to Main Contents
 

NAME

tar - manual page for tar 1.22  

SYNOPSIS

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

DESCRIPTION

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

EXAMPLES

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.
 

OPTIONS

 

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
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-label
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

 

Common Options:

-C, --directory=DIR
change to directory DIR
-f, --file=ARCHIVE
use archive file or device ARCHIVE
-j, --bzip2
filter the archive through bzip2
-J, --xz
filter the archive through xz
-p, --preserve-permissions
extract information about file permissions (default for superuser)
-v, --verbose
verbosely list files processed
-z, --gzip
filter the archive through gzip

 

Operation modifiers:

--check-device
check device numbers when creating incremental archives (default)
-g, --listed-incremental=FILE
handle new GNU-format incremental backup
-G, --incremental
handle old GNU-format incremental backup
--ignore-failed-read
do not exit with nonzero on unreadable files
-n, --seek
archive is seekable
--no-check-device
do not check device numbers when creating incremental archives
--occurrence[=NUMBER]
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
--sparse-version=MAJOR[.MINOR]
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
--keep-newer-files
don't replace existing files that are newer than their archive copies
--no-overwrite-dir
preserve metadata of existing directories
--overwrite
overwrite existing files when extracting
--overwrite-dir
overwrite metadata of existing directories when extracting (default)
--recursive-unlink
empty hierarchies prior to extracting directory
--remove-files
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
--no-ignore-command-error
treat non-zero exit codes of children as error
-O, --to-stdout
extract files to standard output
--to-command=COMMAND
pipe extracted files to another program
Handling of file attributes:
--acls
Save the ACLs to the archive
--atime-preserve[=METHOD]
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-directory-restore
delay setting modification times and permissions of extracted directories until the end of extraction
--group=NAME
force NAME as group for added files
--mode=CHANGES
force (symbolic) mode CHANGES for added files
--mtime=DATE-OR-FILE
set mtime for added files from DATE-OR-FILE
-m, --touch
don't extract file modified time
--no-acls
Don't extract the ACLs from the archive
--no-delay-directory-restore
cancel the effect of --delay-directory-restore option
--no-same-owner
extract files as yourself
--no-same-permissions
apply the user's umask when extracting permissions from the archive (default for ordinary users)
--no-selinux
Don't extract the SELinux context from the archive
--no-xattrs
Don't extract the user/root xattrs from the archive
--numeric-owner
always use numbers for user/group names
--owner=NAME
force NAME as owner for added files
-p, --preserve-permissions, --same-permissions
extract information about file permissions (default for superuser)
--preserve
same as both -p and -s
--same-owner
try extracting files with the same ownership
-s, --preserve-order, --same-order
sort names to extract to match archive
--selinux
Save the SELinux context to the archive
--xattrs
Save the user/root xattrs to the archive
 

Device selection and switching:

-f, --file=ARCHIVE
use archive file or device ARCHIVE
--force-local
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
--rmt-command=COMMAND
use given rmt COMMAND instead of rmt
--rsh-command=COMMAND
use remote COMMAND instead of rsh
--volno-file=FILE
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)
--record-size=NUMBER
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
GNU tar 1.13.x format
oldgnu
GNU format as per tar <= 1.12
pax
POSIX 1003.1-2001 (pax) format
posix
same as pax
ustar
POSIX 1003.1-1988 (ustar) format
v7
old V7 tar format
--old-archive, --portability
same as --format=v7
--pax-option=keyword[[:]=value][,keyword[[:]=value]]...
control pax keywords
--posix
same as --format=posix
-V, --label=TEXT
create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
Compression options:
-a, --auto-compress
use archive suffix to determine the compression program
-I, --use-compress-program=PROG
filter through PROG (must accept -d)
-j, --bzip2
filter the archive through bzip2
--lzma
filter the archive through lzma
--no-auto-compress
do not use archive suffix to determine the compression program
-z, --gzip, --gunzip, --ungzip
filter the archive through gzip
-Z, --compress, --uncompress
filter the archive through compress
-J, --xz
filter the archive through xz
--lzop
filter the archive through lzop
 

Local file selection:

--add-file=FILE
add given FILE to the archive (useful if its name starts with a dash)
--backup[=CONTROL]
backup before removal, choose version CONTROL
-C, --directory=DIR
change to directory DIR
--exclude=PATTERN
exclude files, given as a PATTERN
--exclude-caches
exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself
--exclude-caches-all
exclude directories containing CACHEDIR.TAG
--exclude-caches-under exclude everything under directories containing
CACHEDIR.TAG
--exclude-tag=FILE
exclude contents of directories containing FILE, except for FILE itself
--exclude-tag-all=FILE exclude directories containing FILE
--exclude-tag-under=FILE
exclude everything under directories containing FILE
--exclude-vcs
exclude version control system directories
-h, --dereference
follow symlinks; archive and dump the files they point to
--hard-dereference
follow hard links; archive and dump the files they refer to
-K, --starting-file=MEMBER-NAME
begin at member MEMBER-NAME in the archive
--newer-mtime=DATE
compare date and time when data changed only
--no-null
disable the effect of the previous --null option
--no-recursion
avoid descending automatically in directories
--no-unquote
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
--one-file-system
stay in local file system when creating archive
-P, --absolute-names
don't strip leading `/'s from file names
--recursion
recurse into directories (default)
--suffix=STRING
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
unquote filenames read with -T (default)
-X, --exclude-from=FILE
exclude patterns listed in FILE
 

File name transformations:

--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
--transform=EXPRESSION, --xform=EXPRESSION
use sed replace EXPRESSION to transform file names
File name matching options (affect both exclude and include patterns):
--anchored
patterns match file name start
--ignore-case
ignore case
--no-anchored
patterns match after any `/' (default for exclusion)
--no-ignore-case
case sensitive matching (default)
--no-wildcards
verbatim string matching
--no-wildcards-match-slash
wildcards do not match `/'
--wildcards
use wildcards (default)
--wildcards-match-slash
wildcards match `/' (default for exclusion)
Informative output:
--checkpoint[=NUMBER]
display progress messages every NUMBERth record (default 10)
--checkpoint-action=ACTION
execute ACTION on each checkpoint
--index-file=FILE
send verbose output to FILE
-l, --check-links
print a message if not all links are dumped
--no-quote-chars=STRING
disable quoting for characters from STRING
--quote-chars=STRING
additionally quote characters from STRING
--quoting-style=STYLE
set name quoting style; see below for valid STYLE values
-R, --block-number
show block number within archive with each message
--show-defaults
show tar defaults
--show-omitted-dirs
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
--totals[=SIGNAL]
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
--utc
print file modification dates in UTC
-v, --verbose
verbosely list files processed
-w, --interactive, --confirmation
ask for confirmation for every action

 

Compatibility options:

-o
when creating, same as --old-archive; when extracting, same as --no-same-owner

 

Other options:

-?, --help
give this help list
--restrict
disable use of some potentially harmful options
--usage
give a short usage message
--version
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 c-maybe escape locale clocale

 

DEFAULTS

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

AUTHOR

Written by John Gilmore and Jay Fenlason.  

REPORTING BUGS

Report bugs to <bug-tar@gnu.org>.  

COPYRIGHT

Copyright © 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 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.  

SEE ALSO

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.