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:
 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
 do not exit with nonzero on unreadable files
-n, --seek archive is seekable
 do not check device numbers when creating incremental archives
 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 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
 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
-j, --bzip2
 filter the archive through bzip2
-J, --lzma filter the archive through lzma
 do not use use archive suffix to determine the compression program
 filter through PROG (must accept -d)
-z, --gzip, --gunzip, --ungzip
 filter the archive through gzip
-Z, --compress, --uncompress
 filter the archive through compress
--lzop filter the archive through lzop
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
 exclude version control system directories
-h, --dereference
 follow symlinks; archive and dump the files they point to
 follow hard links; archive and dump the files they refer to
-K, --starting-file=MEMBER-NAME
 begin at member MEMBER-NAME in the archive
 compare date and time when data changed only
--no-null disable the effect of the previous --null option
 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, --xform=EXPRESSION
 use sed replace EXPRESSION to transform file names
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)
 execute ACTION on each checkpoint
 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
--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
 disable use of some potentially harmful options
--usage 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 c-maybe 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 <>.


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

openSUSE Logo