Annotation of cci/usr/src/man/man5/tar.5, revision 1.1.1.1

1.1       root        1: .TH TAR 5  "15 January 1983"
                      2: .SH NAME
                      3: tar \- tape archive file format
                      4: .SH DESCRIPTION
                      5: .IR Tar ,
                      6: (the tape archive command)
                      7: dumps several files into one, in a medium suitable for transportation.
                      8: .PP
                      9: A ``tar tape'' or file is a series of blocks.  Each block is of size TBLOCK.
                     10: A file on the tape is represented by a header block which describes
                     11: the file, followed by zero or more blocks which give the contents of the
                     12: file.  At the end of the tape are two blocks filled with binary
                     13: zeros, as an end-of-file indicator.  
                     14: .PP
                     15: The blocks are grouped for physical I/O operations.  Each group of
                     16: .I n
                     17: blocks (where
                     18: .I n
                     19: is set by the 
                     20: .B b
                     21: keyletter on the 
                     22: .IR tar (1)
                     23: command line \(em default is 20 blocks) is written with a single system
                     24: call; on nine-track tapes, the result of this write is a single tape
                     25: record.  The last group is always written at the full size, so blocks after
                     26: the two zero blocks contain random data.  On reading, the specified or
                     27: default group size is used for the
                     28: first read, but if that read returns less than a full tape block, the reduced
                     29: block size is used for further reads.
                     30: .PP
                     31: The header block looks like:
                     32: .RS
                     33: .PP
                     34: .nf
                     35: #define TBLOCK 512
                     36: #define NAMSIZ 100
                     37: 
                     38: union hblock {
                     39:        char dummy[TBLOCK];
                     40:        struct header {
                     41:                char name[NAMSIZ];
                     42:                char mode[8];
                     43:                char uid[8];
                     44:                char gid[8];
                     45:                char size[12];
                     46:                char mtime[12];
                     47:                char chksum[8];
                     48:                char linkflag;
                     49:                char linkname[NAMSIZ];
                     50:        } dbuf;
                     51: };
                     52: .ta \w'#define 'u +\w'SARMAG 'u
                     53: .fi
                     54: .RE
                     55: .LP
                     56: .IR Name
                     57: is a null-terminated string.
                     58: The other fields are zero-filled octal numbers in ASCII.  Each field
                     59: (of width w) contains w-2 digits, a space, and a null, except
                     60: .IR size
                     61: and
                     62: .IR mtime ,
                     63: which do not contain the trailing null.
                     64: .IR Name
                     65: is the name of the file, as specified on the 
                     66: .I tar
                     67: command line.  Files dumped because they were in a directory which
                     68: was named in the command line have the directory name as prefix and
                     69: .I /filename
                     70: as suffix.
                     71: .  \"Whatever format was used in the command line
                     72: .  \"will appear here, such as
                     73: .  \".I \&./yellow
                     74: .  \"or
                     75: .  \".IR \&../../brick/./road/.. .
                     76: .  \"To retrieve a file from a tar tape, an exact prefix match must be specified,
                     77: .  \"including all of the directory prefix information used on the command line
                     78: .  \"that dumped the file (if any).
                     79: .IR Mode
                     80: is the file mode, with the top bit masked off.
                     81: .IR Uid
                     82: and
                     83: .IR gid
                     84: are the user and group numbers which own the file.
                     85: .IR Size
                     86: is the size of the file in bytes.  Links and symbolic links are dumped
                     87: with this field specified as zero.
                     88: .IR Mtime
                     89: is the modification time of the file at the time it was dumped.
                     90: .IR Chksum
                     91: is a decimal ASCII value which represents the sum of all the bytes in the
                     92: header block.  When calculating the checksum, the 
                     93: .IR chksum
                     94: field is treated as if it were all blanks.
                     95: .IR Linkflag
                     96: is ASCII `0' if the file is ``normal'' or a special file, ASCII `1'
                     97: if it is an hard link, and ASCII `2'
                     98: if it is a symbolic link.  The name linked-to, if any, is in
                     99: .IR linkname,
                    100: with a trailing null.
                    101: Unused fields of the header are binary zeros (and are included in the
                    102: checksum).
                    103: .PP
                    104: The first time a given i-node number is dumped, it is dumped as a regular
                    105: file.  The second and subsequent times, it is dumped as a link instead.
                    106: Upon retrieval, if a link entry is retrieved, but not the file it was
                    107: linked to, an error message is printed and the tape must be manually
                    108: re-scanned to retrieve the linked-to file.
                    109: .PP
                    110: The encoding of the header is designed to be portable across machines.
                    111: .SH "SEE ALSO"
                    112: tar(1)
                    113: .SH BUGS
                    114: Names or linknames longer than NAMSIZ produce error reports and cannot be
                    115: dumped.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.