TAR

NAME

SYNOPSIS

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.

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

–level=NUMBER

dump level for created listed-incremental archive

-n, –seek

archive is seekable

–no-check-device

do not check device numbers when creating
incremental archives

–no-seek

archive is not seekable

–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,
treat them as errors

–skip-old-files

don’t replace existing files when extracting,
silently skip over them

–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 (default for ordinary
users)

–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 as
exists in the archive (default for superuser)

-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

File name transformations:

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

–warning=KEYWORD

warning control

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