tar: PAX 1

1 
1 PAX Format, Version 1.0
1 -----------------------
1 
1 The version '1.0' of sparse format was introduced with GNU 'tar'
1 1.15.92.  Its main objective was to make the resulting file extractable
1 with little effort even by non-posix aware 'tar' implementations.
1 Starting from this version, the extended header preceding a sparse
1 member always contains the following variables that identify the format
1 being used:
1 
1 'GNU.sparse.major'
1      Major version
1 
1 'GNU.sparse.minor'
1      Minor version
1 
1    The 'name' field in 'ustar' header contains a special name,
1 constructed using the following pattern:
1 
1      %d/GNUSparseFile.%p/%f
1 
1    The real name of the sparse file is stored in the variable
1 'GNU.sparse.name'.  The real size of the file is stored in the variable
1 'GNU.sparse.realsize'.
1 
1    The sparse map itself is stored in the file data block, preceding the
1 actual file data.  It consists of a series of octal numbers of arbitrary
1 length, delimited by newlines.  The map is padded with nulls to the
1 nearest block boundary.
1 
1    The first number gives the number of entries in the map.  Following
1 are map entries, each one consisting of two numbers giving the offset
1 and size of the data block it describes.
1 
1    The format is designed in such a way that non-posix aware 'tar's and
1 'tar's not supporting 'GNU.sparse.*' keywords will extract each sparse
1 file in its condensed form with the file map prepended and will place it
1 into a separate directory.  Then, using a simple program it would be
1 possible to expand the file to its original form even without GNU 'tar'.
1 ⇒Sparse Recovery, for the detailed information on how to extract
1 sparse members without GNU 'tar'.
1