tar kann das Archiv in verschiedenen Formaten erstellen. GNU Teer, Ustar, Pax, v7. Was wäre das Beste für eine Langzeitarchivierung? Gibt es signifikante Unterschiede in diesen Formaten?
Ich würde das beste Format für allgemeine Sicherungen verwenden, und ich möchte nicht, dass ich die Daten möglicherweise extrahieren kann, da Formatprobleme auftreten. (v7 verschwindet zum Beispiel aus der Implementierung)
pax
Format nicht! In der Zwischenzeit unterstützt BSD pax (1) POSIX.1-1988ustar
undcpio
GNU und BSD tar (1) unterstützen das POSIX-2001-pax
Format.Einige technische Vergleiche unter
v7
,ustar
undpax
Formate:v7
Das Format vor POSIX.1-1988.
'\0'
), Verzeichnis, Hardlink (Typeflag1
), symbolischer Link (Typeflag2
). Verzeichnis wird durch den Schrägstrich in dem identifizierten Namen Feld. Referenz 1ustar
ustar erweitert den Headerblock aus dem v7-Format, und wenn es nicht komprimiert ist, ist die Größe eines ustar-Tarballs identisch mit der von v7-Tarball. Es gibt keinen großen Grund, das v7-Format zu bevorzugen, es sei denn, Sie entfernen absichtlich Informationen, die ustar archivieren würde.
'\0'
oder0
), Verzeichnis (mit Typflag markiert5
), fester Link, symbolischer Link, Zeichengerät (3
), Blockgerät (4
), FIFO (6
). (Vendor Erweiterungen auf Dateitypen werden in erlaubtA
durchZ
.)ustar weist geringfügige, abwärtskompatible Unterschiede zum vorstandardisierten v7-Format auf - den Typflags
0
und5
für reguläre Dateien bzw. Verzeichnisse. In Version 7 gibt das Typflag- Feld nur Links und keine anderen Dateitypen an.pax
pax erweitert das ustar-Format um (optionale) Extended-Header-Blöcke. Diese Extended-Header sehen beim Extrahieren durch alte Tar-Programme wie normale Textdateien aus. Die erweiterten Header werden intern mit Typflags
x
(erweiterter Datei-Header) undg
(globaler erweiterter Header) identifiziert . Ihre unbegrenzte Erweiterbarkeit bedeutet auch, dass Pax Tarball normalerweise größer als Ustar ist. Es ist gut für die Archivierung, aber ein bisschen aufgebläht für ein Format für die Softwareverteilung.pax ist eine Obermenge des Ustar-Formats - ein Pax-Tarball unterscheidet sich nicht von Ustar, wenn alle erweiterten Header entfernt werden.
Sie können lesen , diese für das, was in pax - Format erweitert werden. Aber im Vergleich zu Ustar zusammenfassend:
path=
Schlüsselwort im erweiterten Header).linkpath=
Schlüsselwort)size
(Dateigröße),uid
(Benutzer-ID),uname
(Benutzername),gid
(Gruppen-ID),gname
(Gruppenname) sind alle auf unbegrenzte Länge erweiterbar.path
,linkpath
,uname
undgname
.atime
) kann zusammen mit der Änderungszeit (mtime
) gespeichert werden .Hinweis: POSIX schreibt kein Dateinamenmuster zum Speichern erweiterter Header vor, sodass Implementierungen frei sind, beliebige Namensmuster zu erstellen. In GNU tar wird beispielsweise das Namensmuster über die
--pax-option=exthdr.name=
Option gesteuert . Wenn Sie vorhaben, einen deterministischen Tarball (untertar
/pax
Implementierungen) zu erstellen , achten Sie darauf.Gnu- und Oldgnu-Formate
Laut GNU-Teerhandbuch basierte GNU-Teer auf dem frühen Entwurf des POSIX.1-
ustar
Standards. Aber GNU-Erweiterungentar
machen es mit demustar
Format inkompatibel . Wenn Sie ein tragbares Archiv machen wollen, sollten Sie GNU tar - Format vermeiden und die Gunstpax
oderustar
statt.Das GNU-Teerformat kann mit dem magischen Feld (8 Bytes) von identifiziert werden
ustar<space><space><nul>
, verglichen mit den magischen Feldern und Versionsfeldern von ustarustar<nul>00
.Das GNU-Tar-Format ist dennoch abwärtskompatibel mit dem v7-Format.
ustar
dass Verwendungen Präfix den Pfad erstreckt, GNU tar speichert die langen Dateinamen in einem (nicht Pax) erweiterte Header - Feld, das typeflag hatL
. In ähnlicher Weise werden Verknüpfungsziele durch einen erweiterten Header mit Typeflag erweitertK
.D
). Siehe GNU-Teeroption--incremental
.M
). Siehe GNU-Teeroption--multi-volume
.S
).V
) oder eine Bezeichnung für das Archiv-Volume. Siehe GNU-Teeroption--label
.oldgnu
(GNU tar <= 1.12) undgnu
(GNU tar> = 1.13.12) ist für Endbenutzer gering, jedoch gemäß Handbuch und create.c und NEWS aus dem Quellcode gibt es mindestens zwei Unterschiede:oldgnu
Das Format beendet die Dateinamen, Benutzernamen und Gruppennamen der Zeichenfolgen immer mit Null-Bytes. (Dies bedeutet, dass Dateinamen maximal 99 Zeichen enthalten, bevor ein erweiterter Header verwendet wird.)quelle
pax ist POSIX-konform ... Allerdings verwende ich nur tar, tar + gz und tar + bz2
quelle
tar.gz ist der ziemlich normale.
tar archiviert alle Dateien in einer einzigen Datei, wie z. B. .iso, komprimiert diese jedoch nicht.
gzip (gz) komprimiert die TAR-Dateien.
Die * nix-Befehlszeile, um dies auszuführen, lautet:
quelle
tar -zcvf name-of-new-archive.tar.gz /path/of/the/directory