Normalerweise habe ich angenommen, dass tar
es sich um ein Komprimierungsprogramm handelt, aber ich bin mir nicht sicher, ob es tatsächlich Dateien komprimiert oder wie eine ISO-Datei, eine Datei zum Speichern von Dateien?
Normalerweise habe ich angenommen, dass tar
es sich um ein Komprimierungsprogramm handelt, aber ich bin mir nicht sicher, ob es tatsächlich Dateien komprimiert oder wie eine ISO-Datei, eine Datei zum Speichern von Dateien?
Antworten:
Tar ist ein Archivierungswerkzeug (Tape ARchive), es sammelt nur Dateien und deren Metadaten zusammen und erzeugt eine Datei. Wenn Sie diese Datei später komprimieren möchten, können Sie gzip / bzip2 / xz verwenden. Der Einfachheit halber bietet tar Argumente, um das Archiv automatisch für Sie zu komprimieren. Kasse der Teer - man - Seite für weitere Details.
thing.tar.7z
z
die Komprimierungsmethode akzeptiert und bestimmt, die auf der Erweiterung basiert, während GNU tar separate zZjJ
Argumente für die verschiedenen Komprimierungsmethoden hat.
zZjJ
genau wie GNU tar separate Komprimierungsfunktionen verwendet . Es erkennt jedoch automatisch die Komprimierung, wenn es dekomprimiert wird, während GNU tar dies ebenfalls erwartet zZjJ
.
tar
automatisch dekomprimiert, ohne dass die entsprechenden -zZjJ
Optionen erforderlich sind .
tar
produziert Archive; Komprimierung ist eine separate Funktion. Jedoch tar
allein Raumnutzung , wenn sie auf einer großen Anzahl von kleinen Dateien verwendet reduzieren können, die kleiner als die Cluster - Größe des Dateisystems. Wenn ein Dateisystem 1-KB-Cluster verwendet, verbraucht auch eine Datei, die ein einzelnes Byte enthält, 1 KB (plus Inode). Ein tar
Archiv hat diesen Overhead nicht.
Übrigens ist eine ISO-Datei nicht wirklich "eine Datei zum Speichern von Dateien" - es ist tatsächlich ein Abbild eines gesamten Dateisystems (eines, das ursprünglich für die Verwendung auf CDs entwickelt wurde), und daher ist seine Struktur erheblich komplexer.
Der ursprüngliche UNIX-Befehl tar hat Archive nicht komprimiert. Wie in einem Kommentar erwähnt, komprimiert Solaris tar nicht. Weder HP-UX noch AIX FWIW. Laut Konvention enden unkomprimierte Archive in .tar
.
Mit GNU / Linux bekommen Sie GNU tar. (Sie können GNU tar auf anderen UNIX-Systemen installieren.) Standardmäßig wird es nicht komprimiert. aber es tut das entstandene Archiv mit gzip komprimiert (auch von GNU) wenn Sie liefern -z
. Das herkömmliche Suffix für gzippte Dateien ist .gz
, so dass Sie häufig Tarballs sehen (Slang für ein Tar-Archiv, was normalerweise impliziert, dass es komprimiert wurde), die auf enden .tar.gz
. Dieses Ende impliziert, dass tar ausgeführt wurde, gefolgt von gzip, z tar cf - .|gzip -9v > archive.tar.gz
. Dort finden Sie auch Archive, die auf enden .tgz
, z tar czf archive.tgz .
.
Edit: www.linfo.org/tar.html hat mich daran erinnert, dass GNU tar viel mehr Funktionen unterstützt als nur das Komprimieren mit gzip, und es hat mich daran erinnert, dass die Suffixe mehr als einfache Konventionen sind. Sie haben eine eingebaute Semantik. Es werden auch bzip2 ( -j
für .bz2
) und altes compress ( -Z
für .Z
) unterstützt. Dann schaute ich auf die Manpage und wurde daran erinnert, dass -a
die gewünschte Komprimierungsmethode basierend auf dem Suffix automatisch zugeordnet wird.
Ein anderer Trottel. Wie die Linux-Manpage tar besagt, erstellt GNU Infoseiten, keine Manpages. Wenn Sie also alles über GNU tar erfahren möchten, führen Sie diese aus info tar
.