Annotation of 43BSDReno/bin/tar/tarformat.5, revision 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: .\"    @(#)tar5.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.