Annotation of 43BSDTahoe/man/man5/tar.5, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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