tar(1)




NAME

     tar - create tape archives and add or extract files


SYNOPSIS

     tar    c[bBDeEfFhiklnopPqvwX@[0-7]]    [block]     [tarfile]
     [exclude-file]  {-I include-file  |  -C directory  |  file |
     file} ...

     tar  r[bBDeEfFhiklnqvw@[0-7]]  [block]  {-I include-file   |
     -C directory | file | file} ...

     tar   t[BefFhiklnqvX[0-7]]   [tarfile]   [exclude-file]   {-
     I include-file | file} ...

     tar u[bBDeEfFhiklnqvw@[0-7]] [block] [tarfile] file...

     tar   x[BefFhiklmnopqvwX[0-7]]   [tarfile]    [exclude-file]
     [file...]


DESCRIPTION

     The tar command archives and extracts files to  and  from  a
     single  file  called  a tarfile. A tarfile is usually a mag-
     netic tape, but it can be any file. tar's actions  are  con-
     trolled  by the key argument. The key is a string of charac-
     ters containing exactly one function letter (c, r, t , u, or
     x)  and zero or more function modifiers (letters or digits),
     depending on the function letter used. The key  string  con-
     tains  no  SPACE characters. Function modifier arguments are
     listed on the command  line  in  the  same  order  as  their
     corresponding function modifiers appear in the key string.

     The -I include-file, -C directory file, and  file  arguments
     specify  which  files  or  directories are to be archived or
     extracted. In all cases,  appearance  of  a  directory  name
     refers to the files and (recursively) subdirectories of that
     directory. Arguments appearing within braces  ({})  indicate
     that one of the arguments must be specified.


OPTIONS

     The following options are supported:

     -I include-file
           Opens include-file containing a list of files, one per
           line,   and   treats  it  as  if  each  file  appeared
           separately on the command line. Be careful of trailing
           white  spaces.  Also  beware  of leading white spaces,
           since, for each line in the included file, the  entire
           line  (apart  from  the newline) will be used to match
           against the initial string of files to include. In the
           case  where  excluded  files (see X function modifier)
           are also specified,  they  take  precedence  over  all
           included  files.  If  a  file is specified in both the
           exclude-file and the include-file (or on  the  command
           line), it will be excluded.

     -C directory file
           Performs a chdir (see cd(1))  operation  on  directory
           and  performs  the c (create) or r (replace) operation
           on file. Use short relative path names for  file.   If
           file  is  `.',  archive  all  files in directory. This
           option enables archiving files  from  multiple  direc-
           tories not related by a close common parent.


OPERANDS

     The following operands are supported:

     file  A path name of a  regular  file  or  directory  to  be
           archived (when the c, r or u functions are specified),
           extracted (x) or listed (t). When  file  is  the  path
           name  of a directory, the action applies to all of the
           files and (recursively) subdirectories of that  direc-
           tory.

           When a file is archived, and the E flag (see  Function
           Modifiers)  is  not  specified,  the  filename  cannot
           exceed 256 characters. In addition, it must be  possi-
           ble  to  split the name between parent directory names
           so that the prefix is no longer  than  155  characters
           and the name is no longer than 100 characters. If E is
           specified, a name of up to PATH_MAX characters may  be
           specified.

           For example, a file whose basename is longer than  100
           characters  could  not be archived without using the E
           flag. A file whose directory portion is 200 characters
           and  whose basename is 50 characters could be archived
           (without using E) if a slash appears in the  directory
           name somewhere in character positions 151-156.

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

     c     Create. Writing begins at the beginning  of  the  tar-
           file, instead of at the end.

     r     Replace. The named files are written at the end of the
           tarfile.  A file created with extended headers must be
           updated with extended headers (see E flag under  Func-
           tion  Modifiers).  A  file  created  without  extended
           headers cannot be modified with extended headers.

     t     Table of Contents. The names of  the  specified  files
           are listed each time they occur in the tarfile.  If no
           file argument is given, the names of all files and any
           associated  extended  attributes  in  the  tarfile are
           listed.  With  the  v  function  modifier,  additional
           information for the specified files is displayed.

     u     Update. The named files are written at the end of  the
           tarfile  if they are not already in the tarfile, or if
           they have been modified since  last  written  to  that
           tarfile.  An  update  can  be  rather  slow. A tarfile
           created on a 5.x system cannot be  updated  on  a  4.x
           system.  A  file created with extended headers must be
           updated with extended headers (see E flag under  Func-
           tion  Modifiers).   A  file  created  without extended
           headers cannot be modified with extended headers.

     x     Extract or restore. The named files are extracted from
           the  tarfile and written to the directory specified in
           the tarfile, relative to the  current  directory.  Use
           the relative path names of files and directories to be
           extracted.

           Absolute path names contained in the tar  archive  are
           unpacked  using  the absolute path names, that is, the
           leading forward slash (/) is not stripped off.

           If a named file matches a directory whose contents has
           been  written to the tarfile, this directory is recur-
           sively extracted. The owner,  modification  time,  and
           mode are restored (if possible); otherwise, to restore
           owner, you must be the  super-user.  Character-special
           and  block-special  devices (created by mknod(1M)) can
           only be extracted by the super-user.  If no file argu-
           ment  is  given,  the entire content of the tarfile is
           extracted. If the tarfile contains several files  with
           the same name, each file is written to the appropriate
           directory, overwriting the previous one. Filename sub-
           stitution  wildcards  cannot  be  used  for extracting
           files from the archive. Rather, use a command  of  the
           form:

     tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | \
          grep 'pattern' `

     When extracting tapes created with the  r  or  u  functions,
     directory modification times may not be set correctly. These
     same functions cannot be used with many tape drives  due  to
     tape  drive  limitations such as the absence of backspace or
     append capabilities.

     When using the r, u, or x functions or the X function modif-
     ier,  the  named  files must match exactly the corresponding
     files in the tarfile. For example,  to  extract  ./thisfile,
     you  must  specify ./thisfile, and not thisfile. The t func-
     tion displays how each file was archived.

  Function Modifiers
     The characters below may be used  in  conjunction  with  the
     letter that selects the desired function.

     b     Blocking Factor. Use when reading or  writing  to  raw
           magnetic  archives  (see  f below). The block argument
           specifies the number of 512-byte  tape  blocks  to  be
           included  in each read or write operation performed on
           the tarfile. The minimum is 1, the default is 20.  The
           maximum  value  is  a function of the amount of memory
           available  and  the  blocking  requirements   of   the
           specific   tape  device  involved  (see  mtio(7I)  for
           details.)  The  maximum  cannot   exceed   INT_MAX/512
           (4194303).

           When a tape archive is being read, its actual blocking
           factor  will  be automatically detected, provided that
           it is less than or equal to the nominal blocking  fac-
           tor  (the  value of the block argument, or the default
           value if the b modifier  is  not  specified).  If  the
           actual  blocking  factor  is  greater than the nominal
           blocking factor, a read error will result. See Example
           5 in EXAMPLES.

     B     Block. Force tar to perform multiple reads (if  neces-
           sary)  to  read  exactly enough bytes to fill a block.
           This function modifier enables tar to work across  the
           Ethernet,  since  pipes  and  sockets  return  partial
           blocks even when more data  is  coming.  When  reading
           from  standard  input,  '-', this function modifier is
           selected by default to ensure  that  tar  can  recover
           from short reads.

     D     Data change warnings. Used with c, r,  or  u  options.
           Ignored  with  t  or x options. If the size of a  file
           changes while the file is being archived,  treat  this
           condition as a warning instead of as an error. A warn-
           ing message will still be written, but the exit status
           is not affected.

     e     Error. Exit immediately with a positive exit status if
           any  unexpected  errors  occur.  The SYSV3 environment
           variable overrides the default behavior. (See ENVIRON-
           MENT VARIABLES section below.)

     E     Write a tarfile with extended headers. (Used  with  c,
           r,  or u options; ignored with t or x options.) When a
           tarfile  is  written  with   extended   headers,   the
           modification  time is maintained with a granularity of
           microseconds  rather  than   seconds.   In   addition,
           filenames  no  longer  than  PATH_MAX  characters that
           could not  be  archived  without  E,  and  file  sizes
           greater  than  8GB,  are  supported.  The  E  flag  is
           required whenever the larger files and/or  files  with
           longer  names, or whose UID/GID exceed 2097151, are to
           be archived, or if time granularity of microseconds is
           desired.

     f     File. Use the tarfile argument as the name of the tar-
           file.  If  f  is  specified,  /etc/default/tar  is not
           searched. If f is omitted, tar  will  use  the  device
           indicated  by  the  TAPE environment variable, if set;
           otherwise, it will use the default values  defined  in
           /etc/default/tar.   The  number  matching the archiveN
           string is used as the output device with the  blocking
           and size specifications from the file. For example,

           tar -c 2/tmp/*

           writes the output to the device specified as  archive2
           in /etc/default/tar.

           If the name of the tarfile is '-', tar writes  to  the
           standard  output  or  reads  from  the standard input,
           whichever is appropriate. tar can be used as the  head
           or  tail  of  a pipeline. tar can also be used to move
           hierarchies with the command:

     example% cd fromdir; tar cf - .| (cd todir; tar xfBp -)

     F     With one F  argument,  tar  excludes  all  directories
           named  SCCS  and  RCS from the tarfile. With two argu-
           ments, FF, tar excludes all directories named SCCS and
           RCS,  all files with .o as their suffix, and all files
           named errs, core, and  a.out.  The  SYSV3  environment
           variable overrides the default behavior. (See ENVIRON-
           MENT VARIABLES section below.)

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

     i     Ignore directory checksum errors.

     k size
           Requires tar to use the size argument as the  size  of
           an  archive  in  kilobytes.  This  is  useful when the
           archive is intended for a fixed size  device  such  as
           floppy  disks.  Large  files  are  then  split  across
           volumes if they do not fit in the specified size.

     l     Link. Output error message if unable  to  resolve  all
           links  to the files being archived. If l is not speci-
           fied, no error messages are printed.

     m     Modify. The modification time of the file is the  time
           of  extraction.  This  function modifier is valid only
           with the x function.

     n     The file being read is a non-tape device.  Reading  of
           the  archive  is  faster  since  tar can randomly seek
           around the archive.

     o     Ownership. Assign to  extracted  files  the  user  and
           group  identifiers  of  the  user running the program,
           rather than those on  tarfile.  This  is  the  default
           behavior  for users other than root. If the o function
           modifier  is  not  set  and  the  user  is  root,  the
           extracted  files will take on the group and user iden-
           tifiers of the files on tarfile (see chown(1) for more
           information).  The  o  function modifier is only valid
           with the x function.

     p     Restore the named files to their original  modes,  and
           ACLs  if  applicable,  ignoring  the present umask(1).
           This is the default behavior if invoked as  super-user
           with  the  x function letter specified. If super-user,
           SETUID, and sticky information are also extracted, and
           files are restored with their original owners and per-
           missions, rather than owned by root. When  this  func-
           tion  modifier  is  used with the c function, ACLs are
           created in the tarfile along with  other  information.
           Errors   will  occur  when  a  tarfile  with  ACLs  is
           extracted by previous versions of tar.

     P     Suppress the addition of a trailing "/"  on  directory
           entries in the archive.

     q     Stop after extracting  the  first  occurrence  of  the
           named  file.  tar  will  normally continue reading the
           archive after finding an occurrence of a file.

     v     Verbose. Output the name of each file preceded by  the
           function letter. With the t function, v provides addi-
           tional information  about  the  tarfile  entries.  The
           listing  is  similar  to the format produced by the -l
           option of the ls(1) command.

     w     What. Output the action to be taken and  the  name  of
           the  file,  then await the user's confirmation. If the
           response is affirmative, the action is performed; oth-
           erwise,  the  action  is  not performed. This function
           modifier cannot be used with the t function.

     X     Exclude. Use the exclude-file argument as a file  con-
           taining  a  list  of relative path names for files (or
           directories) to be  excluded  from  the  tarfile  when
           using the functions c, x, or t. Be careful of trailing
           white spaces. Also beware  of  leading  white  spaces,
           since,  for each line in the excluded file, the entire
           line (apart from the newline) will be  used  to  match
           against the initial string of files to exclude. Multi-
           ple X arguments may be used, with one exclude-file per
           argument.  In  the  case  where included files (see -I
           include-file option) are also specified, the  excluded
           files  take  precedence  over all included files. If a
           file is specified in both  the  exclude-file  and  the
           include-file  (or  on  the  command  line), it will be
           excluded.

     @     Include extended attributes in  archive.  By  default,
           tar does not place extended attributes in the archive.
           With this flag, tar will look for extended  attributes
           on  the files to be placed in the archive and add them
           to the archive. Extended attributes go in the  archive
           as  special files with a special type label. When this
           modifier is used with the x function, extended  attri-
           butes  are extracted from the tape along with the nor-
           mal file data. Extended attribute files  can  only  be
           extracted  from  an  archive  as part of a normal file
           extract.  Attempts  to  explicitly  extract  attribute
           records are ignored.

     [0-7] Select an alternative  drive  on  which  the  tape  is
           mounted.   The   default   entries  are  specified  in
           /etc/default/tar. If no digit or f  function  modifier
           is specified, the entry in /etc/default/tar with digit
           "0" is the default.


USAGE

     See largefile(5) for the description of the behavior of  tar
     when encountering files greater than or equal to 2 Gbyte ( 2
    **31 bytes).

     The automatic determination of the  actual  blocking  factor
     may  be fooled when reading from a pipe or a socket (see the
     B function modifier below).

     1/4" streaming tape has an inherent blocking factor  of  one
     512-byte block. It can be read or written using any blocking
     factor.

     This function modifier works for archives on disk files  and
     block special devices, among others, but is intended princi-
     pally for tape devices.

     For information on tar header format, see archives(4).


EXAMPLES

     Example 1: Creating an archive of your home directory

     The following is an example using tar to create  an  archive
     of   your   home  directory  on  a  tape  mounted  on  drive
     /dev/rmt/0:

     example% cd
     example% tar cvf /dev/rmt/0 .
     messages from tar

     The c function letter means create the archive. The v  func-
     tion modifier outputs messages explaining what tar is doing.
     The f function modifier indicates that the tarfile is  being
     specified  (/dev/rmt/0  in this example). The dot (.) at the
     end of the command line indicates the current directory  and
     is the argument of the f function modifier.

     Display the table of contents of the tarfile with  the  fol-
     lowing command:

     example% tar tvf /dev/rmt/0

     The output will be similar to the following  for  the  POSIX
     locale:

     rw-r--r--   1677/40    2123    Nov  7 18:15 1985    ./test.c
     ...
     example%

     The columns have the following meanings:

        o  column 1 is the access permissions to ./test.c

        o  column 2 is the user-id/group-id of ./test.c

        o  column 3 is the size of ./test.c in bytes

        o  column 4 is the modification date  of  ./test.c.  When
           the LC_TIME category is not set to the POSIX locale, a
           different format and date order field may be used.

        o  column 5 is the name of ./test.c

     To extract files from the archive:

     example% tar xvf /dev/rmt/0
     messages from tar
     example%

     If there are multiple archive  files  on  a  tape,  each  is
     separated  from  the following one by an EOF marker. To have
     tar read the first and second archives from a tape with mul-
     tiple  archives on it, the non-rewinding version of the tape
     device name must be used with the f  function  modifier,  as
     follows:

     example% tar xvfp /dev/rmt/0n read first archive from tape
     messages from tar
     example% tar xvfp /dev/rmt/0n read second archive from tape
     messages from tar
     example%

     Notice that in some earlier releases, the above scenario did
     not  work correctly, and intervention with mt(1) between tar
     invocations was necessary. To emulate the old behavior,  use
     the  non-rewind  device name containing the letter b for BSD
     behavior. See the Close Operations section of  the  mtio(7I)
     manual page.

     Example 2: Archiving files from /usr/include and  from  /etc
     to default tape drive 0

     To archive files from /usr/include and from /etc to  default
     tape drive 0:

     example% tar c -C /usr  include -C /etc .

     The table of contents from the resulting tarfile would  pro-
     duce output like the following:

     include/
     include/a.out.h
     and all the other files in /usr/include ...
     ./chown and all the other files in /etc

     To extract all files in the include directory:

     example% tar xv include
     x include/, 0 bytes, 0 tape blocks \
         and all files under include ...

     Example 3: Transferring files across the network

     The following is an example  using  tar  to  transfer  files
     across the network. First, here is how to archive files from
     the local machine (example) to a tape  on  a  remote  system
     (host):
     example% tar cvfb - 20 files | \
         rsh host dd of=/dev/rmt/0  obs=20b
     messages from tar
     example%

     In the example above, we are creating a tarfile with  the  c
     key  letter,  asking  for verbose output from tar with the v
     function modifier, specifying the name of the output tarfile
     using  the f function modifier (the standard output is where
     the tarfile appears, as indicated  by  the  `-'  sign),  and
     specifying  the blocksize (20) with the b function modifier.
     If you want to change the blocksize,  you  must  change  the
     blocksize  arguments  both  on the tar command and on the dd
     command.

     Example 4: Retrieving files from a tape on the remote system
     back to the local system

     The following is an example that uses tar to retrieve  files
     from a tape on the remote system back to the local system:

     example% rsh -n host dd if=/dev/rmt/0 bs=20b | \
         tar xvBfb - 20 files
     messages from tar
     example%

     In the example above, we are  extracting  from  the  tarfile
     with  the  x  key letter, asking for verbose output from tar
     with the v function modifier, telling tar it is reading from
     a  pipe with the B function modifier, specifying the name of
     the input tarfile using the f function modifier  (the  stan-
     dard input is where the tarfile appears, as indicated by the
     `-' sign), and specifying the  blocksize  (20)  with  the  b
     function modifier.

     Example 5: Creating an archive of the home directory

     The following example creates an archive of the home  direc-
     tory on /dev/rmt/0 with an actual blocking factor of 19:

     example% tar cvfb /dev/rmt/0 19 $HOME

     To recognize this archive's actual blocking  factor  without
     using the b function modifier:

     example% tar tvf /dev/rmt/0
     tar: blocksize = 19
     ...

     To recognize this archive's actual blocking factor  using  a
     larger nominal blocking factor:

     example% tar tvf /dev/rmt/0 30
     tar: blocksize = 19
     ...

     Attempt to recognize this archive's actual  blocking  factor
     using a nominal blocking factor that is too small:

     example% tar tvf /dev/rmt/0 10
     tar: tape read error


ENVIRONMENT VARIABLES

     SYSV3 This variable is used to override the default behavior
           of  tar,  provide  compatibility with INTERACTIVE UNIX
           Systems and SCO UNIX installation scripts, and  should
           not be used in new scripts. (It is intended for compa-
           tibility  purposes  only.)  When  set,  the  following
           options behave differently:

           -F filename
                 Uses filename to obtain a list of  command  line
                 switches and files on which to operate.

           -e    Prevents files from being split across  volumes.
                 If there is insufficient room on one volume, tar
                 prompts for a new volume. If the file  will  not
                 fix on the new volume, tar exits with an error.

     See environ(5) for descriptions of the following environment
     variables  that  affect  the  execution  of  tar:  LC_CTYPE,
     LC_MESSAGES, LC_TIME, TZ, and NLSPATH.


EXIT STATUS

     The following exit values are returned:

     0     Successful completion.

     >0    An error occurred.


FILES

     /dev/rmt/[0-7][b][n]

     /dev/rmt/[0-7]l[b][n]

     /dev/rmt/[0-7]m[b][n]

     /dev/rmt/[0-7]h[b][n]

     /dev/rmt/[0-7]u[b][n]

     /dev/rmt/[0-7]c[b][n]

     /etc/default/tar
           Settings may look like this:

                     archive0=/dev/rmt/0

                     archive1=/dev/rmt/0n

                     archive2=/dev/rmt/1

                     archive3=/dev/rmt/1n

                     archive4=/dev/rmt/0

                     archive5=/dev/rmt/0n

                     archive6=/dev/rmt/1

                     archive7=/dev/rmt/1n

     /tmp/tar*


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsu                     |
    |_____________________________|_____________________________|
    | CSI                         | Enabled                     |
    |_____________________________|_____________________________|
    | Interface Stability         | Stable                      |
    |_____________________________|_____________________________|


SEE ALSO

     ar(1), basename(1), cd(1), chown(1), cpio(1),  csh(1),  dir-
     name(1),   ls(1),   mt(1),   pax(1),  setfacl(1),  umask(1),
     mknod(1M), vold(1M), archives(4), attributes(5), environ(5),
     fsattr(5), largefile(5), mtio(7I)


DIAGNOSTICS

     Diagnostic messages are output for bad  key  characters  and
     tape  read/write errors, and for insufficient memory to hold
     the link tables.


NOTES

     There is no way to access the n-th occurrence of a file.

     Tape errors are handled ungracefully.

     When the Volume Management daemon is  running,  accesses  to
     floppy  devices  through  the conventional device names (for
     example, /dev/rdiskette) may not succeed. See  vold(1M)  for
     further details.

     The tar archive format allows UIDs and GIDs up to 2097151 to
     be  stored  in  the archive header. Files with UIDs and GIDs
     greater than this value will be archived with  the  UID  and
     GID of 60001.

     If an archive is created that  contains  files  whose  names
     were  created  by  processes  running in multiple locales, a
     single locale that uses a full 8-bit codeset  (for  example,
     the  en_US locale) should be used both to create the archive
     and to extract files from the archive.

     Neither the -r option nor the -u option  can  be  used  with
     quarter-inch  archive  tapes, since these tape drives cannot
     backspace.


Man(1) output converted with man2html