diff options
Diffstat (limited to 'archivers/libarchive/files/doc/html/libarchive-formats.5.html')
-rw-r--r-- | archivers/libarchive/files/doc/html/libarchive-formats.5.html | 1401 |
1 files changed, 506 insertions, 895 deletions
diff --git a/archivers/libarchive/files/doc/html/libarchive-formats.5.html b/archivers/libarchive/files/doc/html/libarchive-formats.5.html index be9a717b2a0..2298d6b446d 100644 --- a/archivers/libarchive/files/doc/html/libarchive-formats.5.html +++ b/archivers/libarchive/files/doc/html/libarchive-formats.5.html @@ -1,895 +1,506 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Wed Jun 30 11:55:53 2010 -%%DocumentNeededResources: font Times-Roman -%%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 61 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Roman -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-Roman@0 ENC0/Times-Roman RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<html>)0 12 Q(<head>)0 24 Q(<title>)36 36 Q -(December 27, 2009 libarchi)74.5 48 Q -.15(ve)-.25 G(-formats 5).15 E -(</title>)36 72 Q 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<style type="te)36 12 Q(xt/css">)-.15 E(<!--)36 -24 Q(body { mar)72 36 Q(gin-left:4%; })-.18 E(H1, H2, H3, H4, H5 {)72 48 -Q(color: maroon; padding: 4pt; mar)108 60 Q(gin-left: -4%;)-.18 E -(border: solid; border)108 72 Q(-width: thin; width: 100%;)-.2 E 0 Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(background: r)108 12 Q(gb\(204,204,255\))-.18 E -(})72 24 Q(-->)36 36 Q(</style>)36 48 Q(</head>)0 60 Q -(<body bgcolor="#FFFFFF" te)0 72 Q(xt="#000000">)-.15 E 0 Cg EP -%%Page: 4 4 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<h3 id="N)36 12 Q(AME">)-.35 E -.35(NA)36 24 S -(ME).35 E(</h3>)36 36 Q(<b>libarchi)0 48 Q -.15(ve)-.25 G(-formats</b>) -.15 E 2.5(-a)0 60 S(rchi)-2.5 E .3 -.15(ve f)-.25 H -(ormats supported by the libarchi).15 E .3 -.15(ve l)-.25 H(ibrary).15 E -(<h3 id="DESCRIPTION">)36 72 Q 0 Cg EP -%%Page: 5 5 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(DESCRIPTION)36 12 Q(</h3>)36 24 Q(The)0 36 Q -(<a href="../html3/libarchi)0 48 Q -.15(ve)-.25 G(.html">libarchi).15 E --.15(ve)-.25 G(\(3\)</a>).15 E(library reads and writes a v)0 60 Q -(ariety of streaming archi)-.25 E .3 -.15(ve f)-.25 H(ormats.).15 E -(Generally speaking, all of these archi)0 72 Q .3 -.15(ve f)-.25 H -(ormats consist of a series of).15 E 0 Cg EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.74(``)0 12 S(entries').74 E('.)-.74 E(Each en\ -try stores a single \214le system object, such as a \214le, directory)0 -24 Q(,)-.65 E(or symbolic link.)0 36 Q(<p>)36 48 Q(The follo)0 60 Q -(wing pro)-.25 E(vides a brief description of each format supported)-.15 -E(by libarchi)0 72 Q -.15(ve)-.25 G 2.5(,w).15 G -(ith some information about recognized e)-2.5 E(xtensions or)-.15 E 0 Cg -EP -%%Page: 7 7 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(limitations of the current library support.)0 12 -Q(Note that just because a format is supported by libarchi)0 24 Q .3 --.15(ve d)-.25 H(oes not).15 E(imply that a program that uses libarchi)0 -36 Q .3 -.15(ve w)-.25 H(ill support that format.).15 E -(Applications that use libarchi)0 48 Q .3 -.15(ve s)-.25 H -(pecify which formats the).15 E 2.5(yw)-.15 G(ish)-2.5 E -(to support, though man)0 60 Q 2.5(yp)-.15 G(rograms do use libarchi) --2.5 E .3 -.15(ve c)-.25 H(on).15 E -.15(ve)-.4 G(nience).15 E -(functions to enable all supported formats.)0 72 Q 0 Cg EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<h4 id="T)36 12 Q(ar F)-.8 E(ormats">)-.15 E -.8 -(Ta)36 24 S 2.5(rF).8 G(ormats)-2.65 E(</h4>)36 36 Q(The)0 48 Q -(<a href="../html3/libarchi)0 60 Q -.15(ve)-.25 G(.html">libarchi).15 E --.15(ve)-.25 G(\(3\)</a>).15 E(library can read most tar archi)0 72 Q --.15(ve)-.25 G(s.).15 E 0 Cg EP -%%Page: 9 9 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Ho)0 12 Q(we)-.25 E -.15(ve)-.25 G .8 -.4(r, i) -.15 H 2.5(to).4 G(nly writes POSIX-standard)-2.5 E -.74(``)0 24 S -(ustar').74 E(')-.74 E(and)0 36 Q -.74(``)0 48 S(pax interchange').74 E -(')-.74 E(formats.)0 60 Q(<p>)36 72 Q 0 Cg EP -%%Page: 10 10 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(All tar formats store each entry in one or more 512-byte records.)0 12 -Q(The \214rst record is used for \214le metadata, including \214lename,) -0 24 Q -(timestamp, and mode information, and the \214le data is stored in)0 36 -Q(subsequent records.)0 48 Q(Later v)0 60 Q(ariants ha)-.25 E .3 -.15 -(ve ex)-.2 H(tended this by either appropriating unde\214ned).15 E -(areas of the header record, e)0 72 Q -(xtending the header to multiple records,)-.15 E 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(or by storing special entries that modify the interpretation of)0 12 Q -(subsequent entries.)0 24 Q(<p>)36 36 Q(<dl compact>)0 48 Q -(<p><dt><b></b><b>gnutar</b><dd>)0 60 Q(The)0 72 Q 0 Cg EP -%%Page: 12 12 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<a href="../html3/libarchi)0 12 Q -.15(ve)-.25 G -(.html">libarchi).15 E -.15(ve)-.25 G(\(3\)</a>).15 E -(library can read GNU-format tar archi)0 24 Q -.15(ve)-.25 G(s.).15 E -(It currently supports the most popular GNU e)0 36 Q -(xtensions, including)-.15 E(modern long \214lename and linkname suppor\ -t, as well as atime and ctime data.)0 48 Q(The libarchi)0 60 Q .3 -.15 -(ve l)-.25 H(ibrary does not support multi-v).15 E(olume)-.2 E(archi)0 -72 Q -.15(ve)-.25 G(s, nor the old GNU long \214lename format.).15 E 0 -Cg EP -%%Page: 13 13 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(It can read GNU sparse \214le entries, including the ne)0 12 Q 2.5(wP) --.25 G(OSIX-based)-2.5 E(formats, b)0 24 Q -(ut cannot write GNU sparse \214le entries.)-.2 E -(<p><dt><b></b><b>pax</b><dd>)0 36 Q(The)0 48 Q -(<a href="../html3/libarchi)0 60 Q -.15(ve)-.25 G(.html">libarchi).15 E --.15(ve)-.25 G(\(3\)</a>).15 E -(library can read and write POSIX-compliant pax interchange format)0 72 -Q 0 Cg EP -%%Page: 14 14 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(archi)0 12 Q -.15(ve)-.25 G(s.).15 E -.15(Pa)0 -24 S 2.5(xi).15 G(nterchange format archi)-2.5 E -.15(ve)-.25 G 2.5(sa) -.15 G(re an e)-2.5 E(xtension of the older ustar)-.15 E -(format that adds a separate entry with additional attrib)0 36 Q -(utes stored)-.2 E(as k)0 48 Q -.15(ey)-.1 G(/v).15 E -(alue pairs immediately before each re)-.25 E(gular entry)-.15 E(.)-.65 -E(The presence of these additional entries is the only dif)0 60 Q -(ference between)-.25 E -(pax interchange format and the older ustar format.)0 72 Q 0 Cg EP -%%Page: 15 15 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(The e)0 12 Q(xtended attrib)-.15 E -(utes are of unlimited length and are stored)-.2 E -(as UTF-8 Unicode strings.)0 24 Q -2.15 -.25(Ke y)0 36 T -.1(wo).25 G -(rds de\214ned in the standard are in all lo).1 E(wercase; v)-.25 E -(endors are allo)-.15 E(wed)-.25 E(to de\214ne custom k)0 48 Q -.15(ey) --.1 G 2.5(sb).15 G 2.5(yp)-2.5 G(receding them with the v)-2.5 E -(endor name in all uppercase.)-.15 E(When writing pax archi)0 60 Q -.15 -(ve)-.25 G(s, libarchi).15 E .3 -.15(ve u)-.25 H(ses man).15 E 2.5(yo) --.15 G 2.5(ft)-2.5 G(he SCHIL)-2.5 E 2.5(Yk)-1 G -.15(ey)-2.6 G(s).15 E -(de\214ned by Joer)0 72 Q 2.5(gS)-.18 G(chilling')-2.5 E(s)-.55 E 0 Cg -EP -%%Page: 16 16 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.74(``)0 12 S(star').74 E(')-.74 E(archi)0 24 Q --.15(ve)-.25 G 2.5(ra).15 G(nd a fe)-2.5 E 2.5(wL)-.25 G(IB)-2.5 E -(ARCHIVE k)-.35 E -.15(ey)-.1 G(s.).15 E(The libarchi)0 36 Q .3 -.15 -(ve l)-.25 H(ibrary can read most of the SCHIL).15 E 2.5(Yk)-1 G -.15 -(ey)-2.6 G(s).15 E(and most of the GNU k)0 48 Q -.15(ey)-.1 G 2.5(si).15 -G(ntroduced by GNU tar)-2.5 E(.)-.55 E(It silently ignores an)0 60 Q 2.5 -(yk)-.15 G -.15(ey)-2.6 G -.1(wo).15 G(rds that it does not understand.) -.1 E(<p><dt><b></b><b>restricted</b><b> pax</b><dd>)0 72 Q 0 Cg EP -%%Page: 17 17 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(The libarchi)0 12 Q .3 -.15(ve l)-.25 H -(ibrary can also write pax archi).15 E -.15(ve)-.25 G 2.5(si).15 G 2.5 -(nw)-2.5 G(hich it)-2.5 E(attempts to suppress the e)0 24 Q -(xtended attrib)-.15 E(utes entry whene)-.2 E -.15(ve)-.25 G(r).15 E -(possible.)0 36 Q(The result will be identical to a ustar archi)0 48 Q -.3 -.15(ve u)-.25 H(nless the).15 E -.15(ex)0 60 S(tended attrib).15 E -(utes entry is required to store a long \214le)-.2 E -(name, long linkname, e)0 72 Q(xtended A)-.15 E -(CL, \214le \215ags, or if an)-.4 E 2.5(yo)-.15 G 2.5(ft)-2.5 G -(he standard)-2.5 E 0 Cg EP -%%Page: 18 18 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(ustar data \(user name, group name, UID, GID, etc\) cannot be fully)0 -12 Q(represented in the ustar header)0 24 Q(.)-.55 E -(In all cases, the result can be dearchi)0 36 Q -.15(ve)-.25 G 2.5(db) -.15 G 2.5(ya)-2.5 G .3 -.15(ny p)-2.5 H(rogram that).15 E -(can read POSIX-compliant pax interchange format archi)0 48 Q -.15(ve) --.25 G(s.).15 E(Programs that correctly read ustar format \(see belo)0 -60 Q(w\) will also be)-.25 E(able to read this format; an)0 72 Q 2.5(ye) --.15 G(xtended attrib)-2.65 E(utes will be e)-.2 E(xtracted as)-.15 E 0 -Cg EP -%%Page: 19 19 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(separate \214les stored in)0 12 Q -(<code></code><code>P)0 24 Q(axHeader</code>)-.15 E(directories.)0 36 Q -(<p><dt><b></b><b>ustar</b><dd>)0 48 Q(The libarchi)0 60 Q .3 -.15(ve l) --.25 H(ibrary can both read and write this format.).15 E -(This format has the follo)0 72 Q(wing limitations:)-.25 E 0 Cg EP -%%Page: 20 20 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<ul>)0 12 Q(<li>)0 24 Q(De)0 36 Q -(vice major and minor numbers are limited to 21 bits.)-.25 E -(Nodes with lar)0 48 Q(ger numbers will not be added to the archi)-.18 E --.15(ve)-.25 G(.).15 E(<li>)0 60 Q -.15(Pa)0 72 S(th names in the archi) -.15 E .3 -.15(ve a)-.25 H(re limited to 255 bytes.).15 E 0 Cg EP -%%Page: 21 21 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(\(Shorter if there is no / character in e)0 12 Q -(xactly the right place.\))-.15 E(<li>)0 24 Q -(Symbolic links and hard links are stored in the archi)0 36 Q .3 -.15 -(ve w)-.25 H(ith).15 E(the name of the referenced \214le.)0 48 Q -(This name is limited to 100 bytes.)0 60 Q(<li>)0 72 Q 0 Cg EP -%%Page: 22 22 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Extended attrib)0 12 Q -(utes, \214le \215ags, and other e)-.2 E(xtended)-.15 E -(security information cannot be stored.)0 24 Q(<li>)0 36 Q(Archi)0 48 Q -.3 -.15(ve e)-.25 H(ntries are limited to 8 gig).15 E(abytes in size.) --.05 E(</ul>)0 60 Q -(Note that the pax interchange format has none of these restrictions.)0 -72 Q 0 Cg EP -%%Page: 23 23 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</dl>)0 12 Q(<p>)36 24 Q(The libarchi)0 36 Q .3 --.15(ve l)-.25 H(ibrary also reads a v).15 E(ariety of commonly-used e) --.25 E(xtensions to)-.15 E(the basic tar format.)0 48 Q(These e)0 60 Q -(xtensions are recognized automatically whene)-.15 E -.15(ve)-.25 G 2.5 -(rt).15 G(he)-2.5 E 2.5(ya)-.15 G(ppear)-2.5 E(.)-.55 E(<dl compact>)0 -72 Q 0 Cg EP -%%Page: 24 24 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<p><dt>Numeric e)0 12 Q(xtensions.<dd>)-.15 E -(The POSIX standards require \214x)0 24 Q -(ed-length numeric \214elds to be written with)-.15 E -(some character position reserv)0 36 Q(ed for terminators.)-.15 E -(Libarchi)0 48 Q .3 -.15(ve a)-.25 H(llo).15 E -(ws these \214elds to be written without terminator characters.)-.25 E -(This e)0 60 Q(xtends the allo)-.15 E -.1(wa)-.25 G -(ble range; in particular).1 E 2.5(,u)-.4 G(star archi)-2.5 E -.15(ve) --.25 G 2.5(sw).15 G(ith this)-2.5 E -.15(ex)0 72 S -(tension can support entries up to 64 gig).15 E(abytes in size.)-.05 E 0 -Cg EP -%%Page: 25 25 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Libarchi)0 12 Q .3 -.15(ve a)-.25 H -(lso recognizes base-256 v).15 E(alues in most numeric \214elds.)-.25 E -(This essentially remo)0 24 Q -.15(ve)-.15 G 2.5(sa).15 G -(ll limitations on \214le size, modi\214cation time,)-2.5 E(and de)0 36 -Q(vice numbers.)-.25 E(<p><dt>Solaris e)0 48 Q(xtensions<dd>)-.15 E -(Libarchi)0 60 Q .3 -.15(ve r)-.25 H(ecognizes A).15 E(CL and e)-.4 E -(xtended attrib)-.15 E(ute records written)-.2 E(by Solaris tar)0 72 Q -(.)-.55 E 0 Cg EP -%%Page: 26 26 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Currently)0 12 Q 2.5(,l)-.65 G(ibarchi)-2.5 E .3 --.15(ve o)-.25 H(nly has support for old-style A).15 E(CLs; the)-.4 E -(ne)0 24 Q(wer NFSv4 A)-.25 E(CLs are recognized b)-.4 E(ut discarded.) --.2 E(</dl>)0 36 Q(<p>)36 48 Q(The \214rst tar program appeared in Se)0 -60 Q -.15(ve)-.25 G(nth Edition Unix in 1979.).15 E(The \214rst of)0 72 -Q(\214cial standard for the tar \214le format w)-.25 E(as the)-.1 E 0 Cg -EP -%%Page: 27 27 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.74(``)0 12 S(ustar').74 E(')-.74 E -(\(Unix Standard T)0 24 Q(ar\) format de\214ned by POSIX in 1988.)-.8 E -(POSIX.1-2001 e)0 36 Q(xtended the ustar format to create the)-.15 E --.74(``)0 48 S(pax interchange').74 E(')-.74 E(format.)0 60 Q -(<h4 id="Cpio F)36 72 Q(ormats">)-.15 E 0 Cg EP -%%Page: 28 28 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Cpio F)36 12 Q(ormats)-.15 E(</h4>)36 24 Q -(The libarchi)0 36 Q .3 -.15(ve l)-.25 H -(ibrary can read a number of common cpio v).15 E(ariants and can write) --.25 E -.74(``)0 48 S(odc').74 E(')-.74 E(and)0 60 Q -.74(``)0 72 S(ne) -.74 E(wc')-.25 E(')-.74 E 0 Cg EP -%%Page: 29 29 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(format archi)0 12 Q -.15(ve)-.25 G(s.).15 E 2.5 -(Ac)0 24 S(pio archi)-2.5 E .3 -.15(ve s)-.25 H -(tores each entry as a \214x).15 E(ed-size header follo)-.15 E(wed)-.25 -E(by a v)0 36 Q(ariable-length \214lename and v)-.25 E -(ariable-length data.)-.25 E(Unlik)0 48 Q 2.5(et)-.1 G -(he tar format, the cpio format does only minimal padding)-2.5 E -(of the header or \214le data.)0 60 Q(There are se)0 72 Q -.15(ve)-.25 G -(ral cpio v).15 E(ariants, which dif)-.25 E(fer primarily in)-.25 E 0 Cg -EP -%%Page: 30 30 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(ho)0 12 Q 2.5(wt)-.25 G(he)-2.5 E 2.5(ys)-.15 G -(tore the initial header: some store the v)-2.5 E(alues as)-.25 E -(octal or he)0 24 Q(xadecimal numbers in ASCII, others as binary v)-.15 -E(alues of)-.25 E -.25(va)0 36 S(rying byte order and length.).25 E -(<dl compact>)0 48 Q(<p><dt><b></b><b>binary</b><dd>)0 60 Q -(The libarchi)0 72 Q .3 -.15(ve l)-.25 H -(ibrary transparently reads both big-endian and little-endian).15 E 0 Cg -EP -%%Page: 31 31 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.25(va)0 12 S -(riants of the original binary cpio format.).25 E -(This format used 32-bit binary v)0 24 Q -(alues for \214le size and mtime,)-.25 E(and 16-bit binary v)0 36 Q -(alues for the other \214elds.)-.25 E(<p><dt><b></b><b>odc</b><dd>)0 48 -Q(The libarchi)0 60 Q .3 -.15(ve l)-.25 H -(ibrary can both read and write this).15 E -(POSIX-standard format, which is of)0 72 Q(\214cially kno)-.25 E -(wn as the)-.25 E 0 Cg EP -%%Page: 32 32 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.74(``)0 12 S(cpio interchange format').74 E(') --.74 E(or the)0 24 Q -.74(``)0 36 S(octet-oriented cpio archi).74 E .3 --.15(ve f)-.25 H(ormat').15 E(')-.74 E(and sometimes unof)0 48 Q -(\214cially referred to as the)-.25 E -.74(``)0 60 S -(old character format').74 E('.)-.74 E -(This format stores the header contents as octal v)0 72 Q -(alues in ASCII.)-.25 E 0 Cg EP -%%Page: 33 33 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(It is standard, portable, and immune from byte-order confusion.)0 12 Q -(File sizes and mtime are limited to 33 bits \(8GB \214le size\),)0 24 Q -(other \214elds are limited to 18 bits.)0 36 Q -(<p><dt><b></b><b>SVR4</b><dd>)0 48 Q(The libarchi)0 60 Q .3 -.15(ve l) --.25 H(ibrary can read both CRC and non-CRC v).15 E(ariants of)-.25 E -(this format.)0 72 Q 0 Cg EP -%%Page: 34 34 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(The SVR4 format uses eight-digit he)0 12 Q -(xadecimal v)-.15 E(alues for)-.25 E(all header \214elds.)0 24 Q -(This limits \214le size to 4GB, and also limits the mtime and)0 36 Q -(other \214elds to 32 bits.)0 48 Q -(The SVR4 format can optionally include a CRC of the \214le)0 60 Q -(contents, although libarchi)0 72 Q .3 -.15(ve d)-.25 H -(oes not currently v).15 E(erify this CRC.)-.15 E 0 Cg EP -%%Page: 35 35 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</dl>)0 12 Q(<p>)36 24 Q -(Cpio \214rst appeared in PWB/UNIX 1.0, which w)0 36 Q -(as released within)-.1 E -1.11(AT)0 48 S(&T in 1977.)1.11 E -(PWB/UNIX 1.0 formed the basis of System III Unix, released outside)0 60 -Q(of A)0 72 Q(T&T in 1981.)-1.11 E 0 Cg EP -%%Page: 36 36 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(This mak)0 12 Q(es cpio older than tar)-.1 E 2.5 -(,a)-.4 G(lthough cpio w)-2.5 E(as not included)-.1 E(in V)0 24 Q -(ersion 7 A)-1.11 E(T&T Unix.)-1.11 E -(As a result, the tar command became much better kno)0 36 Q(wn in uni) --.25 E -.15(ve)-.25 G(rsities).15 E(and research groups that used V)0 48 -Q(ersion 7.)-1.11 E(The combination of the)0 60 Q(<b>\214nd</b>)0 72 Q 0 -Cg EP -%%Page: 37 37 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(and)0 12 Q(<b>cpio</b>)0 24 Q(utilities pro)0 36 -Q(vided v)-.15 E(ery precise control o)-.15 E -.15(ve)-.15 G 2.5<728c> -.15 G(le selection.)-2.5 E(Unfortunately)0 48 Q 2.5(,t)-.65 G -(he format has man)-2.5 E 2.5(yl)-.15 G(imitations that mak)-2.5 E 2.5 -(ei)-.1 G 2.5(tu)-2.5 G(nsuitable)-2.5 E(for widespread use.)0 60 Q -(Only the POSIX format permits \214les o)0 72 Q -.15(ve)-.15 G 2.5(r4) -.15 G(GB, and its 18-bit)-2.5 E 0 Cg EP -%%Page: 38 38 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(limit for most other \214elds mak)0 12 Q -(es it unsuitable for modern systems.)-.1 E -(In addition, cpio formats only store numeric UID/GID v)0 24 Q -(alues \(not)-.25 E(usernames and group names\), which can mak)0 36 Q -2.5(ei)-.1 G 2.5(tv)-2.5 G(ery dif)-2.65 E(\214cult to correctly)-.25 E -(transfer archi)0 48 Q -.15(ve)-.25 G 2.5(sa).15 G -(cross systems with dissimilar user numbering.)-2.5 E(<h4 id="Shar F)36 -60 Q(ormats">)-.15 E(Shar F)36 72 Q(ormats)-.15 E 0 Cg EP -%%Page: 39 39 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</h4>)36 12 Q(A)0 24 Q -.74(``)0 36 S -(shell archi).74 E -.15(ve)-.25 G -.74('').15 G -(is a shell script that, when e)0 48 Q -.15(xe)-.15 G -(cuted on a POSIX-compliant).15 E -(system, will recreate a collection of \214le system objects.)0 60 Q -(The libarchi)0 72 Q .3 -.15(ve l)-.25 H(ibrary can write tw).15 E 2.5 -(od)-.1 G(if)-2.5 E(ferent kinds of shar archi)-.25 E -.15(ve)-.25 G(s:) -.15 E 0 Cg EP -%%Page: 40 40 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<dl compact>)0 12 Q -(<p><dt><b></b><b>shar</b><dd>)0 24 Q -(The traditional shar format uses a limited set of POSIX)0 36 Q -(commands, including)0 48 Q(<a href="../html1/echo.html">echo\(1\)</a>,) -0 60 Q(<a href="../html1/mkdir)0 72 Q(.html">mkdir\(1\)</a>,)-.55 E 0 Cg -EP -%%Page: 41 41 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(and)0 12 Q -(<a href="../html1/sed.html">sed\(1\)</a>.)0 24 Q -(It is suitable for portably archi)0 36 Q -(ving small collections of plain te)-.25 E(xt \214les.)-.15 E(Ho)0 48 Q -(we)-.25 E -.15(ve)-.25 G .8 -.4(r, i).15 H 2.5(ti).4 G 2.5(sn)-2.5 G -(ot generally well-suited for lar)-2.5 E(ge archi)-.18 E -.15(ve)-.25 G -(s).15 E(\(man)0 60 Q 2.5(yi)-.15 G(mplementations of)-2.5 E -(<a href="../html1/sh.html">sh\(1\)</a>)0 72 Q 0 Cg EP -%%Page: 42 42 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(ha)0 12 Q .3 -.15(ve l)-.2 H -(imits on the size of a script\) nor should it be used with non-te).15 E -(xt \214les.)-.15 E(<p><dt><b></b><b>shardump</b><dd>)0 24 Q -(This format is similar to shar b)0 36 Q(ut encodes \214les using)-.2 E -(<a href="../html1/uuencode.html">uuencode\(1\)</a>)0 48 Q -(so that the result will be a plain te)0 60 Q(xt \214le re)-.15 E -.05 -(ga)-.15 G(rdless of the \214le contents.).05 E(It also includes additi\ -onal shell commands that attempt to reproduce as)0 72 Q 0 Cg EP -%%Page: 43 43 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(man)0 12 Q 2.5<798c>-.15 G(le attrib)-2.5 E -(utes as possible, including o)-.2 E(wner)-.25 E 2.5(,m)-.4 G -(ode, and \215ags.)-2.5 E -(The additional commands used to restore \214le attrib)0 24 Q(utes mak) --.2 E(e)-.1 E(shardump archi)0 36 Q -.15(ve)-.25 G 2.5(sl).15 G -(ess portable than plain shar archi)-2.5 E -.15(ve)-.25 G(s.).15 E -(</dl>)0 48 Q(<h4 id="ISO9660 format">)36 60 Q(ISO9660 format)36 72 Q 0 -Cg EP -%%Page: 44 44 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</h4>)36 12 Q(Libarchi)0 24 Q .3 -.15(ve c)-.25 -H(an read and e).15 E(xtract from \214les containing ISO9660-compliant) --.15 E(CDR)0 36 Q(OM images.)-.4 E(In man)0 48 Q 2.5(yc)-.15 G -(ases, this can remo)-2.5 E .3 -.15(ve t)-.15 H(he need to b).15 E -(urn a ph)-.2 E(ysical CDR)-.05 E(OM)-.4 E -(just in order to read the \214les contained in an ISO9660 image.)0 60 Q -(It also a)0 72 Q -.2(vo)-.2 G(ids security and comple).2 E -(xity issues that come with)-.15 E 0 Cg EP -%%Page: 45 45 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(virtual mounts and loopback de)0 12 Q(vices.) --.25 E(Libarchi)0 24 Q .3 -.15(ve s)-.25 H -(upports the most common Rockridge e).15 E(xtensions and has partial) --.15 E(support for Joliet e)0 36 Q(xtensions.)-.15 E(If both e)0 48 Q -(xtensions are present, the Joliet e)-.15 E(xtensions will be)-.15 E -(used and the Rockridge e)0 60 Q(xtensions will be ignored.)-.15 E -(In particular)0 72 Q 2.5(,t)-.4 G -(his can create problems with hardlinks and symlinks,)-2.5 E 0 Cg EP -%%Page: 46 46 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(which are supported by Rockridge b)0 12 Q -(ut not by Joliet.)-.2 E(<h4 id="Zip format">)36 24 Q(Zip format)36 36 Q -(</h4>)36 48 Q(Libarchi)0 60 Q .3 -.15(ve c)-.25 H -(an read and write zip format archi).15 E -.15(ve)-.25 G 2.5(st).15 G -(hat ha)-2.5 E -.15(ve)-.2 G -(uncompressed entries and entries compressed with the)0 72 Q 0 Cg EP -%%Page: 47 47 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.74(``)0 12 S(de\215ate').74 E(')-.74 E -(algorithm.)0 24 Q(Older zip compression algorithms are not supported.)0 -36 Q(It can e)0 48 Q(xtract jar archi)-.15 E -.15(ve)-.25 G(s, archi).15 -E -.15(ve)-.25 G 2.5(st).15 G(hat use Zip64 e)-2.5 E(xtensions and man) --.15 E(y)-.15 E(self-e)0 60 Q(xtracting zip archi)-.15 E -.15(ve)-.25 G -(s.).15 E(Libarchi)0 72 Q .3 -.15(ve r)-.25 H(eads Zip archi).15 E -.15 -(ve)-.25 G 2.5(sa).15 G 2.5(st)-2.5 G(he)-2.5 E 2.5(ya)-.15 G -(re being streamed,)-2.5 E 0 Cg EP -%%Page: 48 48 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(which allo)0 12 Q(ws it to read archi)-.25 E --.15(ve)-.25 G 2.5(so).15 G 2.5(fa)-2.5 G(rbitrary size.)-2.5 E -(It currently does not use the central directory; this)0 24 Q -(limits libarchi)0 36 Q -.15(ve)-.25 G 1.1 -.55('s a).15 H -(bility to support some self-e).55 E(xtracting)-.15 E(archi)0 48 Q -.15 -(ve)-.25 G 2.5(sa).15 G(nd ones that ha)-2.5 E .3 -.15(ve b)-.2 H -(een modi\214ed in certain w).15 E(ays.)-.1 E(<h4 id="Archi)36 60 Q .3 --.15(ve \()-.25 H(library\) \214le format">).15 E(Archi)36 72 Q .3 -.15 -(ve \()-.25 H(library\) \214le format).15 E 0 Cg EP -%%Page: 49 49 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</h4>)36 12 Q(The Unix archi)0 24 Q .3 -.15 -(ve f)-.25 H(ormat \(commonly created by the).15 E(<a href="../html1/ar) -0 36 Q(.html">ar\(1\)</a>)-.55 E(archi)0 48 Q -.15(ve)-.25 G -(r\) is a general-purpose format which is).15 E(used almost e)0 60 Q -(xclusi)-.15 E -.15(ve)-.25 G(ly for object \214les to be).15 E -(read by the link editor)0 72 Q 0 Cg EP -%%Page: 50 50 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<a href="../html1/ld.html">ld\(1\)</a>.)0 12 Q -(The ar format has ne)0 24 Q -.15(ve)-.25 G 2.5(rb).15 G -(een standardised.)-2.5 E(There are tw)0 36 Q 2.5(oc)-.1 G(ommon v)-2.5 -E(ariants:)-.25 E(the GNU format deri)0 48 Q -.15(ve)-.25 G 2.5(df).15 G -(rom SVR4,)-2.5 E(and the BSD format, which \214rst appeared in 4.4BSD.) -0 60 Q(The tw)0 72 Q 2.5(od)-.1 G(if)-2.5 E -(fer primarily in their handling of \214lenames)-.25 E 0 Cg EP -%%Page: 51 51 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(longer than 15 characters:)0 12 Q -(the GNU/SVR4 v)0 24 Q(ariant writes a \214lename table at the be)-.25 E -(ginning of the archi)-.15 E -.15(ve)-.25 G(;).15 E -(the BSD format stores each long \214lename in an e)0 36 Q(xtension)-.15 -E(area adjacent to the entry)0 48 Q(.)-.65 E(Libarchi)0 60 Q .3 -.15 -(ve c)-.25 H(an read both e).15 E(xtensions,)-.15 E(including archi)0 72 -Q -.15(ve)-.25 G 2.5(st).15 G -(hat may include both types of long \214lenames.)-2.5 E 0 Cg EP -%%Page: 52 52 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Programs using libarchi)0 12 Q .3 -.15(ve c)-.25 -H(an write GNU/SVR4 format).15 E(if the)0 24 Q 2.5(yp)-.15 G(ro)-2.5 E -(vide a \214lename table to be written into)-.15 E(the archi)0 36 Q .3 --.15(ve b)-.25 H(efore an).15 E 2.5(yo)-.15 G 2.5(ft)-2.5 G(he entries.) --2.5 E(An)0 48 Q 2.5(ye)-.15 G -(ntries whose names are not in the \214lename table)-2.5 E -(will be written using BSD-style long \214lenames.)0 60 Q -(This can cause problems for programs such as)0 72 Q 0 Cg EP -%%Page: 53 53 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(GNU ld that do not support the BSD-style long \214lenames.)0 12 Q -(<h4 id="mtree">)36 24 Q(mtree)36 36 Q(</h4>)36 48 Q(Libarchi)0 60 Q .3 --.15(ve c)-.25 H(an read and write \214les in).15 E -(<a href="../html5/mtree.html">mtree\(5\)</a>)0 72 Q 0 Cg EP -%%Page: 54 54 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(format.)0 12 Q(This format is not a true archi)0 -24 Q .3 -.15(ve f)-.25 H(ormat, b).15 E(ut rather a te)-.2 E -(xtual description)-.15 E(of a \214le hierarch)0 36 Q 2.5(yi)-.05 G 2.5 -(nw)-2.5 G(hich each line speci\214es the name of a \214le and)-2.5 E -(pro)0 48 Q(vides speci\214c metadata about that \214le.)-.15 E -(Libarchi)0 60 Q .3 -.15(ve c)-.25 H(an read all of the k).15 E -.15(ey) --.1 G -.1(wo).15 G(rds supported by both).1 E(the NetBSD and FreeBSD v)0 -72 Q(ersions of)-.15 E 0 Cg EP -%%Page: 55 55 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<a href="../html1/mtree.html">mtree\(1\)</a>,)0 -12 Q(although man)0 24 Q 2.5(yo)-.15 G 2.5(ft)-2.5 G(he k)-2.5 E -.15 -(ey)-.1 G -.1(wo).15 G(rds cannot currently be stored in an).1 E -(<font size="-1"></font><font size="-1">archi)0 36 Q -.15(ve)-.25 G -(_entry</font>).15 E(object.)0 48 Q(When writing, libarchi)0 60 Q .3 --.15(ve s)-.25 H(upports use of the).15 E(<a href="../html3/archi)0 72 Q --.15(ve)-.25 G(_write_set_options.html">archi).15 E -.15(ve)-.25 G -(_write_set_options\(3\)</a>).15 E 0 Cg EP -%%Page: 56 56 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(interf)0 12 Q(ace to specify which k)-.1 E -.15 -(ey)-.1 G -.1(wo).15 G(rds should be included in the).1 E(output.)0 24 Q -(If libarchi)0 36 Q .3 -.15(ve w)-.25 H -(as compiled with access to suitable).05 E -(cryptographic libraries \(such as the OpenSSL libraries\),)0 48 Q -(it can compute hash entries such as)0 60 Q(<b></b><b>sha512</b>)0 72 Q -0 Cg EP -%%Page: 57 57 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(or)0 12 Q(<b></b><b>md5</b>)0 24 Q -(from \214le data being written to the mtree writer)0 36 Q(.)-.55 E(<p>) -36 48 Q(When reading an mtree \214le, libarchi)0 60 Q .3 -.15(ve w)-.25 -H(ill locate the corresponding).15 E(\214les on disk using the)0 72 Q 0 -Cg EP -%%Page: 58 58 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<b></b><b>contents</b>)0 12 Q -.1(ke)0 24 S(yw) --.05 E(ord if present or the re)-.1 E(gular \214lename.)-.15 E -(If it can locate and open the \214le on disk, it will use that)0 36 Q -(to \214ll in an)0 48 Q 2.5(ym)-.15 G -(etadata that is missing from the mtree \214le)-2.5 E -(and will read the \214le contents and return those to the program)0 60 -Q(using libarchi)0 72 Q -.15(ve)-.25 G(.).15 E 0 Cg EP -%%Page: 59 59 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(If it cannot locate and open the \214le on disk, libarchi)0 12 Q -.15 -(ve)-.25 G(will return an error for an)0 24 Q 2.5(ya)-.15 G -(ttempt to read the entry)-2.5 E(body)0 36 Q(.)-.65 E -(<h3 id="SEE ALSO">)36 48 Q(SEE ALSO)36 60 Q(</h3>)36 72 Q 0 Cg EP -%%Page: 60 60 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<a href="../html1/ar)0 12 Q(.html">ar\(1\)</a>,) --.55 E(<a href="../html1/cpio.html">cpio\(1\)</a>,)0 24 Q -(<a href="../html1/mkisofs.html">mkisofs\(1\)</a>,)0 36 Q -(<a href="../html1/shar)0 48 Q(.html">shar\(1\)</a>,)-.55 E -(<a href="../html1/tar)0 60 Q(.html">tar\(1\)</a>,)-.55 E -(<a href="../html1/zip.html">zip\(1\)</a>,)0 72 Q 0 Cg EP -%%Page: 61 61 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<a href="../html3/zlib)0 12 Q -(.html">zlib\(3\)</a>,)-.4 E -(<a href="../html5/cpio.html">cpio\(5\)</a>,)0 24 Q -(<a href="../html5/mtree.html">mtree\(5\)</a>,)0 36 Q -(<a href="../html5/tar)0 48 Q(.html">tar\(5\)</a>)-.55 E(</body>)0 60 Q -(</html>)0 72 Q 0 Cg EP -%%Trailer -end -%%EOF +<!-- Creator : groff version 1.22.3 --> +<!-- CreationDate: Sun Jun 19 19:54:09 2016 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta name="generator" content="groff -Thtml, see www.gnu.org"> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<meta name="Content-Style" content="text/css"> +<style type="text/css"> + p { margin-top: 0; margin-bottom: 0; vertical-align: top } + pre { margin-top: 0; margin-bottom: 0; vertical-align: top } + table { margin-top: 0; margin-bottom: 0; vertical-align: top } + h1 { text-align: center } +</style> +<title></title> +</head> +<body> + +<hr> + + +<p>LIBARCHIVE-FORMATS(5) BSD File Formats Manual +LIBARCHIVE-FORMATS(5)</p> + +<p style="margin-top: 1em"><b>NAME</b></p> + +<p style="margin-left:6%;"><b>libarchive-formats</b> +— archive formats supported by the libarchive +library</p> + +<p style="margin-top: 1em"><b>DESCRIPTION</b></p> + +<p style="margin-left:6%;">The libarchive(3) library reads +and writes a variety of streaming archive formats. Generally +speaking, all of these archive formats consist of a series +of ’’entries’’. Each entry stores a +single file system object, such as a file, directory, or +symbolic link.</p> + +<p style="margin-left:6%; margin-top: 1em">The following +provides a brief description of each format supported by +libarchive, with some information about recognized +extensions or limitations of the current library support. +Note that just because a format is supported by libarchive +does not imply that a program that uses libarchive will +support that format. Applications that use libarchive +specify which formats they wish to support, though many +programs do use libarchive convenience functions to enable +all supported formats.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>Tar +Formats</b> <br> +The libarchive(3) library can read most tar archives. It can +write POSIX-standard ’’ustar’’ and +’’pax interchange’’ formats as well +as v7 tar format and a subset of the legacy GNU tar +format.</p> + +<p style="margin-left:6%; margin-top: 1em">All tar formats +store each entry in one or more 512-byte records. The first +record is used for file metadata, including filename, +timestamp, and mode information, and the file data is stored +in subsequent records. Later variants have extended this by +either appropriating undefined areas of the header record, +extending the header to multiple records, or by storing +special entries that modify the interpretation of subsequent +entries.</p> + +<p style="margin-top: 1em"><b>gnutar</b></p> + +<p style="margin-left:17%; margin-top: 1em">The +libarchive(3) library can read most GNU-format tar archives. +It currently supports the most popular GNU extensions, +including modern long filename and linkname support, as well +as atime and ctime data. The libarchive library does not +support multi-volume archives, nor the old GNU long filename +format. It can read GNU sparse file entries, including the +new POSIX-based formats.</p> + +<p style="margin-left:17%; margin-top: 1em">The +libarchive(3) library can write GNU tar format, including +long filename and linkname support, as well as atime and +ctime data.</p> + +<p style="margin-top: 1em"><b>pax</b></p> + +<p style="margin-left:17%; margin-top: 1em">The +libarchive(3) library can read and write POSIX-compliant pax +interchange format archives. Pax interchange format archives +are an extension of the older ustar format that adds a +separate entry with additional attributes stored as +key/value pairs immediately before each regular entry. The +presence of these additional entries is the only difference +between pax interchange format and the older ustar format. +The extended attributes are of unlimited length and are +stored as UTF-8 Unicode strings. Keywords defined in the +standard are in all lowercase; vendors are allowed to define +custom keys by preceding them with the vendor name in all +uppercase. When writing pax archives, libarchive uses many +of the SCHILY keys defined by Joerg Schilling’s +’’star’’ archiver and a few +LIBARCHIVE keys. The libarchive library can read most of the +SCHILY keys and most of the GNU keys introduced by GNU tar. +It silently ignores any keywords that it does not +understand.</p> + +<p style="margin-left:17%; margin-top: 1em">The pax +interchange format converts filenames to Unicode and stores +them using the UTF-8 encoding. Prior to libarchive 3.0, +libarchive erroneously assumed that the system +wide-character routines natively supported Unicode. This +caused it to mis-handle non-ASCII filenames on systems that +did not satisfy this assumption.</p> + +<p style="margin-top: 1em"><b>restricted pax</b></p> + +<p style="margin-left:17%;">The libarchive library can also +write pax archives in which it attempts to suppress the +extended attributes entry whenever possible. The result will +be identical to a ustar archive unless the extended +attributes entry is required to store a long file name, long +linkname, extended ACL, file flags, or if any of the +standard ustar data (user name, group name, UID, GID, etc) +cannot be fully represented in the ustar header. In all +cases, the result can be dearchived by any program that can +read POSIX-compliant pax interchange format archives. +Programs that correctly read ustar format (see below) will +also be able to read this format; any extended attributes +will be extracted as separate files stored in +<i>PaxHeader</i> directories.</p> + +<p style="margin-top: 1em"><b>ustar</b></p> + +<p style="margin-left:17%; margin-top: 1em">The libarchive +library can both read and write this format. This format has +the following limitations:</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Device major and minor numbers +are limited to 21 bits. Nodes with larger numbers will not +be added to the archive.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Path names in the archive are +limited to 255 bytes. (Shorter if there is no / character in +exactly the right place.)</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Symbolic links and hard links +are stored in the archive with the name of the referenced +file. This name is limited to 100 bytes.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Extended attributes, file +flags, and other extended security information cannot be +stored.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Archive entries are limited to +8 gigabytes in size.</p> + +<p style="margin-left:17%;">Note that the pax interchange +format has none of these restrictions. The ustar format is +old and widely supported. It is recommended when +compatibility is the primary concern.</p> + +<p style="margin-top: 1em"><b>v7</b></p> + +<p style="margin-left:17%; margin-top: 1em">The libarchive +library can read and write the legacy v7 tar format. This +format has the following limitations:</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Only regular files, +directories, and symbolic links can be archived. Block and +character device nodes, FIFOs, and sockets cannot be +archived.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Path names in the archive are +limited to 100 bytes.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Symbolic links and hard links +are stored in the archive with the name of the referenced +file. This name is limited to 100 bytes.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">User and group information are +stored as numeric IDs; there is no provision for storing +user or group names.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Extended attributes, file +flags, and other extended security information cannot be +stored.</p> + +<p><b>•</b></p> + +<p style="margin-left:22%;">Archive entries are limited to +8 gigabytes in size.</p> + +<p style="margin-left:17%;">Generally, users should prefer +the ustar format for portability as the v7 tar format is +both less useful and less portable.</p> + +<p style="margin-left:6%; margin-top: 1em">The libarchive +library also reads a variety of commonly-used extensions to +the basic tar format. These extensions are recognized +automatically whenever they appear.</p> + +<p style="margin-top: 1em">Numeric extensions.</p> + +<p style="margin-left:17%;">The POSIX standards require +fixed-length numeric fields to be written with some +character position reserved for terminators. Libarchive +allows these fields to be written without terminator +characters. This extends the allowable range; in particular, +ustar archives with this extension can support entries up to +64 gigabytes in size. Libarchive also recognizes base-256 +values in most numeric fields. This essentially removes all +limitations on file size, modification time, and device +numbers.</p> + +<p style="margin-top: 1em">Solaris extensions</p> + +<p style="margin-left:17%;">Libarchive recognizes ACL and +extended attribute records written by Solaris tar. +Currently, libarchive only has support for old-style ACLs; +the newer NFSv4 ACLs are recognized but discarded.</p> + +<p style="margin-left:6%; margin-top: 1em">The first tar +program appeared in Seventh Edition Unix in 1979. The first +official standard for the tar file format was the +’’ustar’’ (Unix Standard Tar) format +defined by POSIX in 1988. POSIX.1-2001 extended the ustar +format to create the ’’pax +interchange’’ format.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>Cpio +Formats</b> <br> +The libarchive library can read a number of common cpio +variants and can write ’’odc’’ and +’’newc’’ format archives. A cpio +archive stores each entry as a fixed-size header followed by +a variable-length filename and variable-length data. Unlike +the tar format, the cpio format does only minimal padding of +the header or file data. There are several cpio variants, +which differ primarily in how they store the initial header: +some store the values as octal or hexadecimal numbers in +ASCII, others as binary values of varying byte order and +length.</p> + +<p style="margin-top: 1em"><b>binary</b></p> + +<p style="margin-left:17%; margin-top: 1em">The libarchive +library transparently reads both big-endian and +little-endian variants of the original binary cpio format. +This format used 32-bit binary values for file size and +mtime, and 16-bit binary values for the other fields.</p> + +<p style="margin-top: 1em"><b>odc</b></p> + +<p style="margin-left:17%; margin-top: 1em">The libarchive +library can both read and write this POSIX-standard format, +which is officially known as the ’’cpio +interchange format’’ or the +’’octet-oriented cpio archive +format’’ and sometimes unofficially referred to +as the ’’old character format’’. +This format stores the header contents as octal values in +ASCII. It is standard, portable, and immune from byte-order +confusion. File sizes and mtime are limited to 33 bits (8GB +file size), other fields are limited to 18 bits.</p> + +<p style="margin-top: 1em"><b>SVR4/newc</b></p> + +<p style="margin-left:17%;">The libarchive library can read +both CRC and non-CRC variants of this format. The SVR4 +format uses eight-digit hexadecimal values for all header +fields. This limits file size to 4GB, and also limits the +mtime and other fields to 32 bits. The SVR4 format can +optionally include a CRC of the file contents, although +libarchive does not currently verify this CRC.</p> + +<p style="margin-left:6%; margin-top: 1em">Cpio first +appeared in PWB/UNIX 1.0, which was released within AT&T +in 1977. PWB/UNIX 1.0 formed the basis of System III Unix, +released outside of AT&T in 1981. This makes cpio older +than tar, although cpio was not included in Version 7 +AT&T Unix. As a result, the tar command became much +better known in universities and research groups that used +Version 7. The combination of the <b>find</b> and +<b>cpio</b> utilities provided very precise control over +file selection. Unfortunately, the format has many +limitations that make it unsuitable for widespread use. Only +the POSIX format permits files over 4GB, and its 18-bit +limit for most other fields makes it unsuitable for modern +systems. In addition, cpio formats only store numeric +UID/GID values (not usernames and group names), which can +make it very difficult to correctly transfer archives across +systems with dissimilar user numbering.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>Shar +Formats</b> <br> +A ’’shell archive’’ is a shell +script that, when executed on a POSIX-compliant system, will +recreate a collection of file system objects. The libarchive +library can write two different kinds of shar archives:</p> + +<p style="margin-top: 1em"><b>shar</b></p> + +<p style="margin-left:17%; margin-top: 1em">The traditional +shar format uses a limited set of POSIX commands, including +echo(1), mkdir(1), and sed(1). It is suitable for portably +archiving small collections of plain text files. However, it +is not generally well-suited for large archives (many +implementations of sh(1) have limits on the size of a +script) nor should it be used with non-text files.</p> + +<p style="margin-top: 1em"><b>shardump</b></p> + +<p style="margin-left:17%;">This format is similar to shar +but encodes files using uuencode(1) so that the result will +be a plain text file regardless of the file contents. It +also includes additional shell commands that attempt to +reproduce as many file attributes as possible, including +owner, mode, and flags. The additional commands used to +restore file attributes make shardump archives less portable +than plain shar archives.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>ISO9660 +format</b> <br> +Libarchive can read and extract from files containing +ISO9660-compliant CDROM images. In many cases, this can +remove the need to burn a physical CDROM just in order to +read the files contained in an ISO9660 image. It also avoids +security and complexity issues that come with virtual mounts +and loopback devices. Libarchive supports the most common +Rockridge extensions and has partial support for Joliet +extensions. If both extensions are present, the Joliet +extensions will be used and the Rockridge extensions will be +ignored. In particular, this can create problems with +hardlinks and symlinks, which are supported by Rockridge but +not by Joliet.</p> + +<p style="margin-left:6%; margin-top: 1em">Libarchive reads +ISO9660 images using a streaming strategy. This allows it to +read compressed images directly (decompressing on the fly) +and allows it to read images directly from network sockets, +pipes, and other non-seekable data sources. This strategy +works well for optimized ISO9660 images created by many +popular programs. Such programs collect all directory +information at the beginning of the ISO9660 image so it can +be read from a physical disk with a minimum of seeking. +However, not all ISO9660 images can be read in this +fashion.</p> + +<p style="margin-left:6%; margin-top: 1em">Libarchive can +also write ISO9660 images. Such images are fully optimized +with the directory information preceding all file data. This +is done by storing all file data to a temporary file while +collecting directory information in memory. When the image +is finished, libarchive writes out the directory structure +followed by the file data. The location used for the +temporary file can be changed by the usual environment +variables.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>Zip +format</b> <br> +Libarchive can read and write zip format archives that have +uncompressed entries and entries compressed with the +’’deflate’’ algorithm. Other zip +compression algorithms are not supported. It can extract jar +archives, archives that use Zip64 extensions and +self-extracting zip archives. Libarchive can use either of +two different strategies for reading Zip archives: a +streaming strategy which is fast and can handle extremely +large archives, and a seeking strategy which can correctly +process self-extracting Zip archives and archives with +deleted members or other in-place modifications.</p> + +<p style="margin-left:6%; margin-top: 1em">The streaming +reader processes Zip archives as they are read. It can read +archives of arbitrary size from tape or network sockets, and +can decode Zip archives that have been separately compressed +or encoded. However, self-extracting Zip archives and +archives with certain types of modifications cannot be +correctly handled. Such archives require that the reader +first process the Central Directory, which is ordinarily +located at the end of a Zip archive and is thus inaccessible +to the streaming reader. If the program using libarchive has +enabled seek support, then libarchive will use this to +processes the central directory first.</p> + +<p style="margin-left:6%; margin-top: 1em">In particular, +the seeking reader must be used to correctly handle +self-extracting archives. Such archives consist of a program +followed by a regular Zip archive. The streaming reader +cannot parse the initial program portion, but the seeking +reader starts by reading the Central Directory from the end +of the archive. Similarly, Zip archives that have been +modified in-place can have deleted entries or other garbage +data that can only be accurately detected by first reading +the Central Directory.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>Archive +(library) file format</b> <br> +The Unix archive format (commonly created by the ar(1) +archiver) is a general-purpose format which is used almost +exclusively for object files to be read by the link editor +ld(1). The ar format has never been standardised. There are +two common variants: the GNU format derived from SVR4, and +the BSD format, which first appeared in 4.4BSD. The two +differ primarily in their handling of filenames longer than +15 characters: the GNU/SVR4 variant writes a filename table +at the beginning of the archive; the BSD format stores each +long filename in an extension area adjacent to the entry. +Libarchive can read both extensions, including archives that +may include both types of long filenames. Programs using +libarchive can write GNU/SVR4 format if they provide an +entry called <i>//</i> containing a filename table to be +written into the archive before any of the entries. Any +entries whose names are not in the filename table will be +written using BSD-style long filenames. This can cause +problems for programs such as GNU ld that do not support the +BSD-style long filenames.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>mtree</b> +<br> +Libarchive can read and write files in mtree(5) format. This +format is not a true archive format, but rather a textual +description of a file hierarchy in which each line specifies +the name of a file and provides specific metadata about that +file. Libarchive can read all of the keywords supported by +both the NetBSD and FreeBSD versions of mtree(8), although +many of the keywords cannot currently be stored in an +archive_entry object. When writing, libarchive supports use +of the archive_write_set_options(3) interface to specify +which keywords should be included in the output. If +libarchive was compiled with access to suitable +cryptographic libraries (such as the OpenSSL libraries), it +can compute hash entries such as <b>sha512</b> or <b>md5</b> +from file data being written to the mtree writer.</p> + +<p style="margin-left:6%; margin-top: 1em">When reading an +mtree file, libarchive will locate the corresponding files +on disk using the <b>contents</b> keyword if present or the +regular filename. If it can locate and open the file on +disk, it will use that to fill in any metadata that is +missing from the mtree file and will read the file contents +and return those to the program using libarchive. If it +cannot locate and open the file on disk, libarchive will +return an error for any attempt to read the entry body.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>7-Zip</b> +<br> +Libarchive can read and write 7-Zip format archives. TODO: +Need more information</p> + +<p style="margin-left:6%; margin-top: 1em"><b>CAB</b> <br> +Libarchive can read Microsoft Cabinet ( +’’CAB’’) format archives. TODO: Need +more information.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>LHA</b> <br> +TODO: Information about libarchive’s LHA support</p> + +<p style="margin-left:6%; margin-top: 1em"><b>RAR</b> <br> +Libarchive has limited support for reading RAR format +archives. Currently, libarchive can read RARv3 format +archives which have been either created uncompressed, or +compressed using any of the compression methods supported by +the RARv3 format. Libarchive can also read self-extracting +RAR archives.</p> + +<p style="margin-left:6%; margin-top: 1em"><b>Warc</b> <br> +Libarchive can read and write ’’web +archives’’. TODO: Need more information</p> + +<p style="margin-left:6%; margin-top: 1em"><b>XAR</b> <br> +Libarchive can read and write the XAR format used by many +Apple tools. TODO: Need more information</p> + +<p style="margin-top: 1em"><b>SEE ALSO</b></p> + +<p style="margin-left:6%;">ar(1), cpio(1), mkisofs(1), +shar(1), tar(1), zip(1), zlib(3), cpio(5), mtree(5), +tar(5)</p> + +<p style="margin-left:6%; margin-top: 1em">BSD +March 18, 2012 BSD</p> +<hr> +</body> +</html> |