TAR(5)                                                                  TAR(5)


NAME
       tar - tape archive file format

DESCRIPTION
       Tar,  (the  tape  archive  command)  dumps several files into one, in a
       medium suitable for transportation.

       A ‘‘tar tape’’ or file is a series of blocks.  Each block  is  of  size
       TBLOCK.   A  file  on  the  tape is represented by a header block which
       describes the file, followed by zero or more blocks which give the con‐
       tents  of  the file.  At the end of the tape are two blocks filled with
       binary zeros, as an end-of-file indicator.

       The blocks are grouped for physical I/O operations.  Each  group  of  n
       blocks  (where n is set by the b keyletter on the tar(1) command line —
       default is 20 blocks) is written with a single system  call;  on  nine-
       track  tapes,  the  result  of this write is a single tape record.  The
       last group is always written at the full size, so blocks after the  two
       zero  blocks contain random data.  On reading, the specified or default
       group size is used for the first read, but if that  read  returns  less
       than  a  full  tape  block,  the reduced block size is used for further
       reads.

       The header block looks like:

              #define TBLOCK 512
              #define NAMSIZ 100

              union hblock {
                   char dummy[TBLOCK];
                   struct header {
                        char name[NAMSIZ];
                        char mode[8];
                        char uid[8];
                        char gid[8];
                        char size[12];
                        char mtime[12];
                        char chksum[8];
                        char linkflag;
                        char linkname[NAMSIZ];
                   } dbuf;
              };

       Name is a null-terminated string.  The  other  fields  are  zero-filled
       octal numbers in ASCII.  Each field (of width w) contains w-2 digits, a
       space, and a null, except size and mtime,  which  do  not  contain  the
       trailing null and chksum which has a null followed by a space.  Name is
       the name of the file, as specified on  the  tar  command  line.   Files
       dumped  because they were in a directory which was named in the command
       line have the directory name as prefix and /filename as  suffix.   Mode
       is  the  file  mode,  with the top bit masked off.  Uid and gid are the
       user and group numbers which own the file.  Size is  the  size  of  the
       file  in  bytes.   Links  and symbolic links are dumped with this field
       specified as zero.  Mtime is the modification time of the file  at  the
       time  it  was  dumped.  Chksum is an octal ASCII value which represents
       the sum of all the bytes in the header  block.   When  calculating  the
       checksum,  the chksum field is treated as if it were all blanks.  Link
       flag is NULL if the file is ‘‘normal’’ or a special file, ASCII ‘1’  if
       it  is  an hard link, and ASCII ‘2’ if it is a symbolic link.  The name
       linked-to, if any, is in linkname, with a trailing null.  Unused fields
       of the header are binary zeros (and are included in the checksum).

       The first time a given i-node number is dumped, it is dumped as a regu‐
       lar file.  The second and subsequent times, it  is  dumped  as  a  link
       instead.   Upon  retrieval,  if  a link entry is retrieved, but not the
       file it was linked to, an error message is printed and the tape must be
       manually re-scanned to retrieve the linked-to file.

       The  encoding of the header is designed to be portable across machines.

SEE ALSO
       tar(1)

BUGS
       Names or linknames longer than NAMSIZ produce error reports and  cannot
       be dumped.


4.2 Berkeley Distribution      November 7, 1985                         TAR(5)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 699
Valid CSS Valid XHTML 1.0 Strict