Was ist der Unterschied zwischen .tar.gz und .gz oder .tar.7z und .7z?


158

Vor kurzem habe ich viele meiner Daten gesichert und festgestellt, dass ich Dateien als .gzoder .tar.gz, oder .7zund .tar.7zusw. speichern kann . Was sind die Unterschiede zwischen der normalen und der .tar.*Variante? Welcher von ihnen wird beim Erstellen von Backups empfohlen?

Antworten:


183

Wenn Sie aus einem Windows-Hintergrund stammen, kennen Sie möglicherweise die Formate zip und rar. Hierbei handelt es sich um Archive mehrerer zusammen komprimierter Dateien.

In Unix- und Unix-ähnlichen Systemen (wie Ubuntu) sind Archivierung und Komprimierung getrennt.

tar fügt mehrere Dateien in eine einzige (tar) Datei ein.

gzip komprimiert eine Datei (nur).

Um ein komprimiertes Archiv zu erhalten, kombinieren Sie die beiden, verwenden Sie zuerst taroder pax, um alle Dateien in einer einzigen Datei zu speichern (archive.tar) und dann gzip(archive.tar.gz). Wenn Sie nur eine Datei benötigen Sie zu komprimieren (notes.txt), gibt es keine Notwendigkeit für Teer, so dass Sie nur tun , gzip notes.txtwas führt zu notes.txt.gz. Es gibt andere Arten der Kompression, wie compress, bzip2und xzdie in der gleichen Weise wie gzip arbeiten ( mit Ausnahme von mit verschiedenen Arten von Kompressions natürlich)


6
Das ist sinnvoll, aber warum kann ich ein .7zArchiv aus mehreren Dateien erstellen, während ich auch ein .tar.7zArchiv aus mehreren Dateien erstellen kann?
Exeleration-G

3
@ Exeleration-G 7zip folgt nicht diesem Schema. Es ist eher wie zip und rar. Ich bin nicht sicher, wozu die Verwendung von tar in Verbindung mit 7zip gut ist, da ich 7zip selbst nicht verwendet habe.
Geirha

42
@ Exeleration-G Nachdem ich die anderen Antworten durchgelesen habe, sehe ich, dass SaultDon darauf antwortet. 7zip speichert kein Unix-Eigentum und keine Berechtigungen für die archivierten Dateien (es scheint hauptsächlich auf Windows ausgerichtet zu sein, wie z. B. zip und rar). Daher ist es sinnvoll, es mit tar zu kombinieren, um das Eigentum und die Berechtigungen beizubehalten.
Geirha

@geirha Markiere die Frage als gelöst, wenn du die passende Antwort findest.
Ravi

1
Nach meiner Erfahrung ist 7z bei der Komprimierung viel besser als zip. Als ich es ausprobiert habe, habe ich 40% mehr gespart
Eoin

49

Es kommt darauf an, wonach Sie suchen ... Komprimierung oder Archivierung?

Wenn ich über Archivierung spreche, meine ich, Berechtigungen, Verzeichnisstruktur usw. beizubehalten.

Bei der Komprimierung wird das meiste möglicherweise ignoriert, und Ihre Dateien werden nur in kleineren Paketen gespeichert.

Verwenden Sie tar, um die Dateiberechtigungen beizubehalten:

tar cpvf backup.tar folder

Das p-Flag speichert die Dateiberechtigungen. Verwenden Sie das z-Flag für die gzip-Komprimierung oder das j-Flag für die bzip-Komprimierung.

tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too

Wenn Sie eine tar-Datei haben möchten, können Sie das tar-Paket mit dem P-Flag "aktualisieren":

tar cpPvf backup.tar folder

Ersetzen Sie zum Aktualisieren "c" durch "u" und verwenden Sie beim Entpacken "k", um bereits vorhandene Dateien zu erhalten.

tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already

Das P-Flag speichert Dateien mit vollständigen Pfaden, also - / home / Benutzername vs home / Benutzername (beachten Sie den führenden Schrägstrich).

Die 7z-Komprimierung bietet eine stärkere Komprimierung, ohne dass der Besitz von Dateien, Berechtigungen usw. erhalten bleiben. Rzip ist ein weiteres Komprimierungsdienstprogramm, das eine mit 7z vergleichbare Komprimierung bietet.

Ich schätze, eine backup.tar.7z-Datei ist nur eine TAR-Datei (mit Berechtigungen), die von einer 7z-Datei komprimiert wurde. Es würde mich jedoch nicht wundern, wenn nur eine geringe Komprimierung stattfinden würde, da 7z die Dateimetadaten möglicherweise nicht sichern kann. Es ist die Fähigkeit von 7z, die Dateimetadaten auszuschließen, die eine hervorragende Komprimierung ermöglichen (unter anderem natürlich).

Die Komprimierung hängt auch vollständig vom Datentyp ab. Einige Dateien lassen sich nicht gut komprimieren, da sie möglicherweise bereits mit anderen Mitteln komprimiert wurden (z. B. MP3, JPG, TIFF / mit LZMA, RPM usw.).


11

gzip oder bzip2 wissen nichts über file system- Dateiname, Verzeichnis oder Baumstruktur. Es komprimiert nur den Eingabestream und gibt dann das Ergebnis aus. Selbst gzip oder bzip2 können keine eigenen Verzeichnisse archivieren, weshalb es normalerweise mit tar kombiniert wird.

tar (archiver) - archiviert nur die Dateistruktur. gzip, bzip2 (Compressor) - komprimiert nur die Eingabe.

Ich denke, diese Strategie kam von der Unix-Philosophie, eine Sache gut zu machen . Tar funktioniert gut? Lass es wie es ist. Benötigen Sie mehr Komprimierungsrate als gzip? Hier ist bzip2 oder 7zip.


Eigentlich kann 7zip wie zip oder rar archivieren.
Mait

8

Aufgrund seiner verschiedenen Komprimierungsarten wird Teer für sich einfach archiviert (geringe bis keine Komprimierung). tar.gz ist ein tar-Archiv, aber die Inhalte werden durch gzip (mäßige Komprimierung) komprimiert, daher werden .gz und tar.7z mit 7zip komprimiert (normalerweise sehr hohe Komprimierung).

Beim Sichern würde ich tar.7z empfehlen, da es die höchste Komprimierungsrate hat, die Platz spart, aber ein zusätzliches Programm (7zip) verwendet. Bei .tar.gz handelt es sich um größere Dateien, und Sie können auch bzip (.tar.bz / bz2) verwenden, obwohl ich nicht sicher bin, ob dies besser für Sie geeignet ist, da ich gzip oder 7zip verwende


4

Normalerweise sind * .tar-Dateien nur mit dem Programm tar erstellte TAR-Dateien, * .gz-Programme werden mit gzip erstellt, * .tar.gz (manchmal auch * .tgz) sind gziped-TAR-Dateien und * .7z werden mit 7zip erstellt.

Unter Linux / Unix kann man eine Datei jedoch so ziemlich beliebig benennen, so dass der Ersteller der Dateien völlig frei ist.


3

Tar (Tape Archiver) wird in Unix / Linux traditionell als Container zum Packen von Dateien zum Verschieben verwendet. Es packt die Dateistruktur und behält die Dateiattribute bei, komprimiert die Dateien jedoch nicht.

Komprimierungsprogramme komprimieren die Datei, um sie zu verkleinern. Sie können jedoch nicht mehrere Dateien verarbeiten und / oder sie können die für Linux erforderlichen Dateiattribute nicht verarbeiten. Da tar bereits existiert und gut unterstützt wird, gibt es keinen Grund, Programme zu archivieren, um diese plattformspezifische Funktionalität zu duplizieren (für Windows und Linux unterschiedlich). Außerdem können verschiedene Komprimierungsprogramme für verschiedene Dateitypen unterschiedlich ausgeführt werden, sodass eine Auswahl von mehr als einer wünschenswert ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.