TAR(1)

NAME
tar, tar0 - tape archiver

SYNOPSIS
tar [ key ] [ name ... ]

DESCRIPTION

Tar saves and restores multiple files on a single file (usually a magnetic tape, but it can be any file). Tar's actions are controlled by the key argument. The key is a string of characters containing at most one function letter and possibly one or more function modifiers. Other arguments to tar are file or directory names specifying which files to dump or restore. In all cases, appearance of a directory name refers to the files and (recursively) subdirectories of that directory.

The function portion of the key is specified by one of the following letters:

r   The named files are written on the end of the tape. The c function implies this.

x   The named files are extracted from the tape. If the named file matches a directory whose contents had been written onto the tape, this directory is (recursively) extracted. The owner, modification time, and mode are restored (if possible). If no file argument is given, the entire content of the tape is extracted. Note that if multiple entries specifying the same file are on the tape, the last one overwrites all earlier.

t   The names of the specified files are listed each time they occur on the tape. If no file argument is given, all of the names on the tape are listed.

u   The named files are added to the tape if either they are not already there or have been modified since last put on the tape.

c   Create a new tape; writing begins on the beginning of the tape instead of after the last file. This command implies r.

The following characters may be used in addition to the letter which selects the function desired.

e   Use the X/Open extended header format on output. This supports file types not recognised by older versions of tar, i.e. block/character devices and named pipes. It will also seriously confuse older versions of tar if they try to read an archive with extended headers. The header format is determined automatically when reading tapes (key letters 'x' and 't').

o   On output, tar normally places information specifying owner and modes of directories in the archive. Former versions of tar, when encountering this information will give error message of the form
        "<name>/: cannot create".
    This modifier will suppress the directory information.

p   This modifier says to restore files to their original modes, ignoring the present umask(2). Setuid and sticky information will also be restored to the super-user.

0, ..., 9
    This modifier selects an alternate drive on which the tape is mounted. The device name will be formed by appending the option digit to /dev/tape (the default device is /dev/tape with no postfix).

v   Normally tar does its work silently. The v (verbose) option makes tar print the name of each file it treats preceded by the function letter. With the t function, the verbose option gives more information about the tape entries than just their names.

w   Tar prints the action to be taken followed by file name, then wait for user confirmation. If a word beginning with `y' is given, the action is done. Any other input means don't do it.

f   Tar uses the next argument as the name of the archive instead of /dev/tape. If the name of the file is `-', tar writes to standard output or reads from standard input, whichever is appropriate. Thus, tar can be used as the head or tail of a filter chain. Tar can also be used to move hierarchies with the command
    cd fromdir; tar cf - . | (cd todir; tar xf -)

F   With one F argument specified, exclude all directories named SCCS or RCS from tarfile. With two arguments, FF, exclude all directories named SCCS and RCS, all files with .o as as their suffix, and all files named errs, core, and a.out.

b   Tar uses the next argument as the blocking factor for tape records. The maximum is 20. The default value depends on the version of tar used; in the BSD version (/usr/bin/tar) it is 20; in the X/Open version (/usr/5bin/tar) it is 1. This option should only be used with raw magnetic tape archives (See f above). The block size is determined automatically when reading tapes (key letters `x' and `t').

l   tells tar to complain if it cannot resolve all of the links to the files dumped. If this is not specified, no error messages are printed.

m   tells tar not to restore the modification times. The modification time will be the time of extraction.

h   Force tar to follow symbolic links as if they were normal files or directories. Normally, tar does not follow symbolic links.

B   Forces input and output blocking to 20 blocks per record. This option was added so that tar can work across a communications channel where the blocking may not be maintained.

L   Tar uses the next argument as a file containing a list of files and/or directories to add, extract, or tabulate. If this option is used, all files named on the command line are ignored.

C   If a file name is preceded by -C, then tar will perform a chdir(2) to that file name. This allows multiple directories not related by a close common parent to be archived using short relative path names. For example, to archive files from /usr/include and from /etc, one might use
    tar c -C /usr include -C / etc

Previous restrictions dealing with tar's inability to properly handle blocked archives have been lifted.

FILES
/dev/tape
/dev/tape?
/tmp/tar*

SEE ALSO
tar(5)

DIAGNOSTICS
Complaints about bad key characters and tape read/write errors.
Complaints if enough memory is not available to hold the link tables.

BUGS
There is no way to ask for the n-th occurrence of a file.
Tape errors are handled ungracefully.
The u option can be slow.
The current limit on file name length is 100 characters.
There is no way selectively to follow symbolic links.
When extracting tapes created with the r or u options, directory modification times may not be set correctly.

tar will create `holes' in the output files for completely zero disc blocks, this saves considerable disc space on RISC iX systems. Some NFS fileservers (eg those running 4.2BSD) have a bug which cause them to add a zero byte to files copied in this manner. This can be avoided by using tar0 which is identical to tar except that it copies the files byte for byte.