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


Vor kurzem habe ich viele meiner Daten gesichert, und mir ist aufgefallen, dass ich Dateien speichern kann .gz oder .tar.gz, oder .7z und .tar.7z, und so weiter. Was sind die Unterschiede zwischen dem normalen und dem .tar.* Variante? Welche davon wird beim Erstellen von Backups empfohlen?


145
2018-04-15 01:09


Ursprung




Antworten:


Wenn Sie von einem Windows-Hintergrund kommen, sind Sie vielleicht mit den Formaten zip und rar vertraut. Dies sind Archive mehrerer komprimierter Dateien.

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

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

gzip komprimiert eine Datei (nur).

Um also ein komprimiertes Archiv zu erhalten, kombinierst du die beiden zuerst tar oder pax um alle Dateien in eine einzige Datei (archive.tar) zu bekommen, dann gzip es (archive.tar.gz). Wenn Sie nur eine Datei haben, die Sie komprimieren müssen (notes.txt), brauchen Sie keinen tar, also tun Sie es einfach gzip notes.txt was ergibt notes.txt.gz. Es gibt andere Arten der Komprimierung, wie z compress, bzip2 und xz die in der gleichen Weise wie gzip funktionieren (natürlich abgesehen davon, dass verschiedene Komprimierungsarten verwendet werden)


173
2018-04-15 01:41



Das macht Sinn, aber warum kann ich dann einen machen? .7z archivieren aus mehreren Dateien, während ich auch ein .tar.7z aus mehreren Dateien archivieren? - Exeleration-G
@ Exeleration-G 7zip folgt diesem Schema nicht. Es ist eher wie Zip und Rar. Ich bin mir nicht sicher, was der Sinn von tar in Verbindung mit 7zip ist, da ich selbst 7zip nicht benutzt habe. - geirha
@ Exeleration-G Nachdem ich die anderen Antworten gelesen habe, sehe ich, dass SaultDon das beantwortet; 7zip speichert keine Unix-Rechte und Berechtigungen der archivierten Dateien (es scheint hauptsächlich auf Windows zu basieren, wie zip und rar), daher ist es sinnvoll, es mit tar zu kombinieren, um Besitz und Berechtigungen zu erhalten. - geirha
@geirha Markieren Sie die Frage als gelöst, wenn Sie die passende Antwort finden. - Ravi
Meiner Erfahrung nach ist 7z bei Kompression viel besser als zip. Als ich es getestet habe, habe ich etwa 40% mehr gespart - Eoin


Es hängt davon ab, was Sie suchen ... Komprimierung oder Archivierung?

Wenn ich über die Archivierung spreche, meine ich die Bewahrung von Berechtigungen, Verzeichnisstruktur usw.

Die Komprimierung ignoriert das meiste und bringt Ihre Dateien in kleinere Pakete.

Um Dateiberechtigungen zu erhalten, verwenden Sie tar:

tar cpvf backup.tar folder

Das p-Flag speichert 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 den Teer mithilfe des P-Flags "updaten":

tar cpPvf backup.tar folder

Um sie zu aktualisieren, ersetzen Sie "c" durch "u" und beim Entpacken können Sie mit "k" Dateien beibehalten, die bereits vorhanden sind.

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 höhere Komprimierung, behält aber nicht den Besitz von Dateien, Berechtigungen usw. bei. Rzip ist ein weiteres Komprimierungsprogramm, das eine vergleichbare Komprimierung mit 7z bietet.

Ich denke, eine backup.tar.7z-Datei ist nur eine TAR-Datei (mit Berechtigungen), die von einer 7z-Datei komprimiert wird, obwohl ich nicht überrascht wäre, wenn eine kleine Komprimierung auftreten würde, weil 7z die Metadaten der Datei möglicherweise nicht ablegen kann. Es ist die Fähigkeit von 7z, die Datei-Metadaten auszuschließen, die (unter anderem natürlich) eine große Komprimierung bieten kann.

Die Komprimierung hängt vollständig vom Datentyp ab. Einige Dateien werden nicht gut komprimiert, da sie möglicherweise bereits mit anderen Mitteln komprimiert wurden (z. B. .mp3, .jpg, .tiff / mit lzma, .rpm usw.).


46
2018-04-15 01:45





gzip oder bzip2 weiß nichts darüber file system - Dateiname, Verzeichnis oder Baumstruktur. Es komprimiert nur den Eingabestrom und gibt dann das Ergebnis aus. Selbst gzip oder bzip2 können Verzeichnisse nicht selbst archivieren, deshalb wird es normalerweise mit tar kombiniert.

tar (archiver) - Archivdateistruktur einfach archivieren. gzip, bzip2 (compressor) - komprimiere den Input einfach.

Ich denke, diese Strategie kam von "mach eins gut" Unix-Philosophie. Teer funktioniert gut? Lass es so wie es ist. Benötigen Sie mehr Kompressionsrate als gzip? Hier ist bzip2 oder 7zip.


10
2018-04-15 04:55



Eigentlich kann 7zip wie zip oder rar archivieren. - Mait


In seinen verschiedenen Komprimierungsstilen wird Tear selbst einfach archiviert (wenig bis keine Komprimierung). tar.gz ist ein Tar-Archiv, aber die Inhalte werden durch gzip (moderate Komprimierung) komprimiert, daher werden .gz und tar.7z mit 7zip komprimiert (normalerweise super hohe Komprimierung)

Beim Backup würde ich tar.7z empfehlen, da es die höchste Komprimierungsrate hat, die Speicherplatz spart, aber ein extra Programm (7zip) verwendet. .tar.gz sind größere Dateien und machen den gleichen Job, Sie könnten auch bzip (.tar.bz / bz2) verwenden, obwohl ich nicht sicher bin, ob das besser zu Ihnen passt, da ich gzip oder 7zip benutze


8
2018-04-15 01:36





In der Regel sind * .tar-Dateien nur TAR-Dateien, die mit dem tar-Programm erstellt wurden, * .gz-Programme werden mit gzip, * .tar.gz (manchmal auch * .tgz) mit gziped-TAR-Dateien und * .7z mit 7zip erstellt.

Unter Linux / Unix kann man jedoch eine Datei so ziemlich benennen, wie sie will, also liegt es ganz im Ermessen des Erstellers der Dateien.


3
2018-04-15 01:21





Tar (Tape Archiver) wurde traditionell als Container in Unix / Linux verwendet, um Dateien für die Bewegung zu verpacken. Es packt die Dateistruktur und verwaltet Dateiattribute, aber es komprimiert die Dateien nicht.

Komprimierungsprogramme komprimieren die Datei, um sie kleiner zu machen, aber sie verarbeiten möglicherweise nicht mehrere Dateien und / oder verarbeiten möglicherweise nicht die Dateiattribute, die für Linux erforderlich sind. Da tar bereits existiert und gut unterstützt wird, gibt es keinen Grund für die Archivierung von Programmen, diese Funktionalität zu duplizieren, die plattformspezifisch ist (anders für Windows und Linux). Außerdem können unterschiedliche Komprimierungsprogramme bei unterschiedlichen Dateitypen unterschiedlich ausgeführt werden, so dass es wünschenswert ist, mehrere zu wählen.


3
2018-04-15 01:34