For help use tar --help
or man tar
from the command line.
tar saves many files together into a single tape or disk archive, and can restore individual files from the archive. Usage: tar [OPTION]... [FILE]... 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. If a long option shows an argument as mandatory, then it is mandatory for the equivalent short option also. Similarly for optional arguments. Main operation mode: -t, --list list the contents of an archive -x, --extract, --get extract files from an archive -c, --create create a new archive -d, --diff, --compare find differences between archive and file system -r, --append append files to the end of an archive -u, --update only append files newer than copy in archive -A, --catenate append tar files to an archive --concatenate same as -A --delete delete from the archive (not on mag tapes!) Operation modifiers: -W, --verify attempt to verify the archive after writing it --remove-files remove files after adding them to the archive -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 --overwrite overwrite existing files when extracting --no-overwrite-dir preserve metadata of existing directories -U, --unlink-first remove each file prior to extracting over it --recursive-unlink empty hierarchies prior to extracting directory -S, --sparse handle sparse files efficiently -O, --to-stdout extract files to standard output -G, --incremental handle old GNU-format incremental backup -g, --listed-incremental=FILE handle new GNU-format incremental backup --ignore-failed-read do not exit with nonzero on unreadable files --occurrence[=NUM] process only the NUMth 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 -T option. NUM defaults to 1. Handling of file attributes: --owner=NAME force NAME as owner for added files --group=NAME force NAME as group for added files --mode=CHANGES force (symbolic) mode CHANGES for added files --atime-preserve don't change access times on dumped files -m, --modification-time don't extract file modified time --same-owner try extracting files with the same ownership --no-same-owner extract files as yourself --numeric-owner always use numbers for user/group names -p, --same-permissions extract permissions information --no-same-permissions do not extract permissions information --preserve-permissions same as -p -s, --same-order sort names to extract to match archive --preserve-order same as -s --preserve same as both -p and -s Device selection and switching: -f, --file=ARCHIVE use archive file or device ARCHIVE --force-local archive file is local even if has a colon --rmt-command=COMMAND use given rmt COMMAND instead of /etc/rmt --rsh-command=COMMAND use remote COMMAND instead of rsh -[0-7][lmh] specify drive and density -M, --multi-volume create/list/extract multi-volume archive -L, --tape-length=NUM change tape after writing NUM x 1024 bytes -F, --info-script=FILE run script at end of each tape (implies -M) --new-volume-script=FILE same as -F FILE --volno-file=FILE use/update the volume number in FILE Device blocking: -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record --record-size=SIZE SIZE bytes per record, multiple of 512 -i, --ignore-zeros ignore zeroed blocks in archive (means EOF) -B, --read-full-records reblock as we read (for 4.2BSD pipes) Archive format selection: --format=FMTNAME create archive of the given format. FMTNAME is one of the following: v7 old V7 tar format oldgnu GNU format as per tar <= 1.12 gnu GNU tar 1.13 format ustar POSIX 1003.1-1988 (ustar) format posix POSIX 1003.1-2001 (pax) format --old-archive, --portability same as --format=v7 --posix same as --format=posix --pax-option keyword[[:]=value][,keyword[[:]=value], ...] control pax keywords -V, --label=NAME create archive with volume name NAME PATTERN at list/extract time, a globbing PATTERN -j, --bzip2 filter the archive through bzip2 -z, --gzip, --ungzip filter the archive through gzip -Z, --compress, --uncompress filter the archive through compress --use-compress-program=PROG filter through PROG (must accept -d) Local file selection: -C, --directory=DIR change to directory DIR -T, --files-from=NAME get names to extract or create from file NAME --null -T reads null-terminated names, disable -C --exclude=PATTERN exclude files, given as a PATTERN -X, --exclude-from=FILE exclude patterns listed in FILE --anchored exclude patterns match file name start (default) --no-anchored exclude patterns match after any / --ignore-case exclusion ignores case --no-ignore-case exclusion is case sensitive (default) --wildcards exclude patterns use wildcards (default) --no-wildcards exclude patterns are plain strings --wildcards-match-slash exclude pattern wildcards match '/' (default) --no-wildcards-match-slash exclude pattern wildcards do not match '/' -P, --absolute-names don't strip leading `/'s from file names -h, --dereference dump instead the files symlinks point to --no-recursion avoid descending automatically in directories -l, --one-file-system stay in local file system when creating archive -K, --starting-file=NAME begin at file NAME in the archive --strip-path=NUM strip NUM leading components from file names before extraction -N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE --newer-mtime=DATE compare date and time when data changed only --after-date=DATE same as -N --backup[=CONTROL] backup before removal, choose version control --suffix=SUFFIX backup before removal, override usual suffix Informative output: --help print this help, then exit --version print tar program version number, then exit -v, --verbose verbosely list files processed --checkpoint print directory names while reading the archive --check-links print a message if not all links are dumped --totals print total bytes written while creating archive --index-file=FILE send verbose output to FILE --utc print file modification dates in UTC -R, --block-number show block number within archive with each message -w, --interactive ask for confirmation for every action --confirmation same as -w Compatibility options: -o when creating, same as --old-archive when extracting, same as --no-same-owner 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: t, numbered make numbered backups nil, existing numbered if numbered backups exist, simple otherwise never, simple always make simple backups ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date or a file name starting with `/' or `.', in which case the file's date is used. *This* `tar' defaults to `--format=gnu -f- -b20'.