Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

tar(1)



TAR(5)                  COMMAND REFERENCE                  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 contents 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.  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



Printed 10/17/86                                                1





TAR(5)                  COMMAND REFERENCE                  TAR(5)



     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 a decimal 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.  Linkflag is
     ASCII `0' 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 filename linked-to, if any, is given 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 inode number is dumped, it is dumped
     as a regular 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.

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

SEE ALSO
     tar(1).
























Printed 10/17/86                                                2



%%index%%
na:72,66;
de:138,2219;2501,1445;
ca:3946,143;
se:4089,93;
%%index%%000000000091

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026