enum Crystar::Format

Overview

Various Crystar formats

Defined in:

tar/format.cr

Enum Members

V7 = 1

The format of the original Unix V7 tar tool prior to standardization.

USTAR = 2

USTAR represents the USTAR header format defined in POSIX.1-1988.

While this format is compatible with most tar readers, the format has several limitations making it unsuitable for some usages. Most notably, it cannot support sparse files, files larger than 8GiB, filenames larger than 256 characters, and non-ASCII filenames.

Reference: http:#pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06

PAX = 4

PAX represents the PAX header format defined in POSIX.1-2001.

PAX extends USTAR by writing a special file with Typeflag TypeXHeader preceding the original header. This file contains a set of key-value records, which are used to overcome USTAR's shortcomings, in addition to providing the ability to have sub-second resolution for timestamps.

Some newer formats add their own extensions to PAX by defining their own keys and assigning certain semantic meaning to the associated values. For example, sparse file support in PAX is implemented using keys defined by the GNU manual (e.g., "GNU.sparse.map").

Reference: http:#pubs.opengroup.org/onlinepubs/009695399/utilities/pax.html

GNU = 8

GNU represents the GNU header format.

The GNU header format is older than the USTAR and PAX standards and is not compatible with them. The GNU format supports arbitrary file sizes, filenames of arbitrary encoding and length, sparse files, and other features.

It is recommended that PAX be chosen over GNU unless the target application can only parse GNU formatted archives.

Reference: https:#www.gnu.org/softwarecrystar/manual/html_node/Standard.html

STAR = 16

Schily's tar format, which is incompatible with USTAR. This does not cover STAR extensions to the PAX format; these fall under the PAX format.

Instance Method Summary

Instance Method Detail

def gnu? #

[View source]
def has(f2 : self) #

[View source]
def may_only_be(f2) #

[View source]
def maybe(f2 : self) #

[View source]
def must_not_be(f2) #

[View source]
def none? #

[View source]
def pax? #

[View source]
def star? #

[View source]
def ustar? #

[View source]
def v7? #

[View source]