tar − The GNU version of the tar archiving utility


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, --xz ] [ -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 ]


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.


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


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



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


print directory names while reading the archive

-f, --file [HOSTNAME:]F

use archive file or device F (default "-", meaning stdin/stdout)


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


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


like -p -s

-R, --record-number

show record number within archive with each message


remove files after adding them to the archive

-s, --same-order, --preserve-order

list of names to extract is sorted to match archive


create extracted files with the same ownership


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


-T reads null-terminated names, disable -C


print total bytes written with --create

-v, --verbose

verbosely list files processed

-V, --label NAME

create archive with volume name NAME


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 the output of compression program for tapes


specify drive and density


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.

Manpage server at Ulysses.gnu.org.ua.

Powered by mansrv 1.0