home *** CD-ROM | disk | FTP | other *** search
-
-
-
- TTTTAAAARRRR((((5555)))) AAAAmmmmiiiiggggaaaaDDDDOOOOSSSS ((((11115555 OOOOccccttttoooobbbbeeeerrrr 1111999988887777)))) TTTTAAAARRRR((((5555))))
-
-
-
- NNNNAAAAMMMMEEEE
- tar - tape (or other media) archive file format
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- A ``tar tape'' or file contains a series of records. Each
- record contains TRECORDSIZE bytes (see below). Although
- this format may be thought of as being on magnetic tape,
- other media are often used. Each file archived is
- represented by a header record which describes the file,
- followed by zero or more records which give the contents of
- the file. At the end of the archive file there may be a
- record filled with binary zeros as an end-of-file indicator.
- A reasonable system should write a record of zeros at the
- end, but must not assume that an end-of-file record exists
- when reading an archive.
-
- The records may be blocked for physical I/O operations.
- Each block of _N records (where _N is set by the ----bbbb option to
- _t_a_r) is written with a single write() operation. On
- magnetic tapes, the result of such a write is a single tape
- record. When writing an archive, the last block of records
- should be written at the full size, with records after the
- zero record containing all zeroes. When reading an archive,
- a reasonable system should properly handle an archive whose
- last block is shorter than the rest, or which contains
- garbage records after a zero record.
-
- The header record is defined in the header file <tar.h> as
- follows:
- /*
- * Standard Archive Format - Standard TAR - USTAR
- */
- #define RECORDSIZE 512
- #define NAMSIZ 100
- #define TUNMLEN 32
- #define TGNMLEN 32
-
- union record {
- char charptr[RECORDSIZE];
- 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];
- char magic[8];
- char uname[TUNMLEN];
- char gname[TGNMLEN];
-
-
- Page 1 (printed 3/8/90)
-
-
-
-
-
-
- TTTTAAAARRRR((((5555)))) AAAAmmmmiiiiggggaaaaDDDDOOOOSSSS ((((11115555 OOOOccccttttoooobbbbeeeerrrr 1111999988887777)))) TTTTAAAARRRR((((5555))))
-
-
-
- char devmajor[8];
- char devminor[8];
- } header;
- };
-
- /* The checksum field is filled with this while the checksum is computed. */
- #define CHKBLANKS " " /* 8 blanks, no null */
-
- /* The magic field is filled with this if uname and gname are valid. */
- #define TMAGIC "ustar " /* 7 chars and a null */
-
- /* The linkflag defines the type of file */
- #define LF_OLDNORMAL '\0' /* Normal disk file, Unix compatible */
- #define LF_NORMAL '0' /* Normal disk file */
- #define LF_LINK '1' /* Link to previously dumped file */
- #define LF_SYMLINK '2' /* Symbolic link */
- #define LF_CHR '3' /* Character special file */
- #define LF_BLK '4' /* Block special file */
- #define LF_DIR '5' /* Directory */
- #define LF_FIFO '6' /* FIFO special file */
- #define LF_CONTIG '7' /* Contiguous file */
- /* Further link types may be defined later. */
-
- /* Bits used in the mode field - values in octal */
- #define TSUID 04000 /* Set UID on execution */
- #define TSGID 02000 /* Set GID on execution */
- #define TSVTX 01000 /* Save text (sticky bit) */
-
- /* File permissions */
- #define TUREAD 00400 /* read by owner */
- #define TUWRITE 00200 /* write by owner */
- #define TUEXEC 00100 /* execute/search by owner */
- #define TGREAD 00040 /* read by group */
- #define TGWRITE 00020 /* write by group */
- #define TGEXEC 00010 /* execute/search by group */
- #define TOREAD 00004 /* read by other */
- #define TOWRITE 00002 /* write by other */
- #define TOEXEC 00001 /* execute/search by other */
-
- All characters in header records are represented using 8-bit
- characters in the local variant of ASCII. Each field within
- the structure is contiguous; that is, there is no padding
- used within the structure. Each character on the archive
- medium is stored contiguously.
-
- Bytes representing the contents of files (after the header
- record of each file) are not translated in any way and are
- not constrained to represent characters or to be in any
- character set. The _t_a_r(5) format does not distinguish text
- files from binary files, and no translation of file contents
- should be performed.
-
-
-
-
- Page 2 (printed 3/8/90)
-
-
-
-
-
-
- TTTTAAAARRRR((((5555)))) AAAAmmmmiiiiggggaaaaDDDDOOOOSSSS ((((11115555 OOOOccccttttoooobbbbeeeerrrr 1111999988887777)))) TTTTAAAARRRR((((5555))))
-
-
-
- The fields _n_a_m_e, _l_i_n_k_n_a_m_e, _m_a_g_i_c, _u_n_a_m_e, and _g_n_a_m_e are
- null-terminated character strings. All other fields are
- zero-filled octal numbers in ASCII. Each numeric field (of
- width _w) contains _w-2 digits, a space, and a null, except
- _s_i_z_e and _m_t_i_m_e, which do not contain the trailing null.
-
- The _n_a_m_e field is the pathname of the file, with directory
- names (if any) preceding the file name, separated by
- slashes.
-
- The _m_o_d_e field provides nine bits specifying file
- permissions and three bits to specify the Set UID, Set GID
- and Save Text (TSVTX) modes. Values for these bits are
- defined above. When special permissions are required to
- create a file with a given mode, and the user restoring
- files from the archive does not hold such permissions, the
- mode bit(s) specifying those special permissions are
- ignored. Modes which are not supported by the operating
- system restoring files from the archive will be ignored.
- Unsupported modes should be faked up when creating an
- archive; e.g. the group permission could be copied from the
- `other' permission.
-
- The _u_i_d and _g_i_d fields are the user and group ID of the file
- owners, respectively.
-
- The _s_i_z_e field is the size of the file in bytes; linked
- files are archived with this field specified as zero.
-
- The _m_t_i_m_e field is the modification time of the file at the
- time it was archived. It is the ASCII representation of the
- octal value of the last time the file was modified,
- represented as in integer number of seconds since January 1,
- 1970, 00:00 Coordinated Universal Time.
-
- The _c_h_k_s_u_m field is the ASCII representaion of the octal
- value of the simple sum of all bytes in the header record.
- Each 8-bit byte in the header is treated as an unsigned
- value. These values are added to an unsigned integer,
- initialized to zero, the precision of which shall be no less
- than seventeen bits. When calculating the checksum, the
- _c_h_k_s_u_m field is treated as if it were all blanks.
-
- The _t_y_p_e_f_l_a_g field specifies the type of file archived. If
- a particular implementation does not recognize or permit the
- specified type, the file will be extracted as if it were a
- regular file. As this action occurs, _t_a_r issues a warning
- to the standard error.
-
- LF_NORMAL or LF_OLDNORMAL
- represents a regular file. For backward compatibility,
- a _t_y_p_e_f_l_a_g value of LF_OLDNORMAL should be silently
-
-
-
- Page 3 (printed 3/8/90)
-
-
-
-
-
-
- TTTTAAAARRRR((((5555)))) AAAAmmmmiiiiggggaaaaDDDDOOOOSSSS ((((11115555 OOOOccccttttoooobbbbeeeerrrr 1111999988887777)))) TTTTAAAARRRR((((5555))))
-
-
-
- recognized as a regular file. New archives should be
- created using LF_NORMAL. Also, for backward
- compatability, _t_a_r treats a regular file whose name
- ends with a slash as a directory.
-
- LF_LINK
- represents a file linked to another file, of any type,
- previously archived. Such files are identified in Unix
- by each file having the same device and inode number.
- The linked-to name is specified in the _l_i_n_k_n_a_m_e field
- with a trailing null.
-
- LF_SYMLINK
- represents a symbolic link to another file. The
- linked-to name is specified in the _l_i_n_k_n_a_m_e field with
- a trailing null.
-
- LF_CHR or LF_BLK
- represent character special files and block special
- files respectively. In this case the _d_e_v_m_a_j_o_r and
- _d_e_v_m_i_n_o_r fields will contain the major and minor device
- numbers respectively. Operating systems may map the
- device specifications to their own local specification,
- or may ignore the entry.
-
- LF_DIR
- specifies a directory or sub-directory. The directory
- name in the _n_a_m_e field should end with a slash. On
- systems where disk allocation is performed on a
- directory basis the _s_i_z_e field will contain the maximum
- number of bytes (which may be rounded to the nearest
- disk block allocation unit) which the directory may
- hold. A _s_i_z_e field of zero indicates no such limiting.
- Systems which do not support limiting in this manner
- should ignore the _s_i_z_e field.
-
- LF_FIFO
- specifies a FIFO special file. Note that the archiving
- of a FIFO file archives the existence of this file and
- not its contents.
-
- LF_CONTIG
- specifies a contiguous file, which is the same as a
- normal file except that, in operating systems which
- support it, all its space is allocated contiguously on
- the disk. Operating systems which do not allow
- contiguous allocation should silently treat this type
- as a normal file.
-
- `A' - `Z'
- are reserved for custom implementations. None are used
- by this version of the _t_a_r program.
-
-
-
- Page 4 (printed 3/8/90)
-
-
-
-
-
-
- TTTTAAAARRRR((((5555)))) AAAAmmmmiiiiggggaaaaDDDDOOOOSSSS ((((11115555 OOOOccccttttoooobbbbeeeerrrr 1111999988887777)))) TTTTAAAARRRR((((5555))))
-
-
-
- _o_t_h_e_r
- values are reserved for specification in future
- revisions of the P1003 standard, and should not be used
- by any _t_a_r program.
-
- The _m_a_g_i_c field indicates that this archive was output in
- the P1003 archive format. If this field contains TMAGIC,
- then the _u_n_a_m_e and _g_n_a_m_e fields will contain the ASCII
- representation of the owner and group of the file
- respectively. If found, the user and group ID represented
- by these names will be used rather than the values contained
- within the _u_i_d and _g_i_d fields. User names longer than
- TUNMLEN-1 or group names longer than TGNMLEN-1 characters
- will be truncated.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- tar(1), ar(5), cpio(5), dump(8), restor(8), restore(8)
-
- BBBBUUUUGGGGSSSS
- Names or link names longer than NAMSIZ-1 characters cannot
- be archived.
-
- This format does not yet address multi-volume archives.
-
- NNNNOOOOTTTTEEEESSSS
- This manual page was adapted by John Gilmore from Draft 6 of
- the P1003 specification
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 5 (printed 3/8/90)
-
-
-
-