1254 Stimmen

Wie hängen zlib, gzip und zip zusammen? Was haben sie gemeinsam und worin unterscheiden sie sich?

Der Komprimierungsalgorithmus, der in zlib verwendet wird, ist im Wesentlichen derselbe wie der in gzip und zip. Was sind gzip und zip? Wie unterscheiden sie sich und wie sind sie gleich?

62voto

Niels Keurentjes Punkte 39826

ZIP ist ein Dateiformat zum Speichern einer beliebigen Anzahl von Dateien und Ordnern zusammen mit verlustfreier Komprimierung. Es macht keine strengen Annahmen über die verwendeten Komprimierungsmethoden, wird aber am häufigsten mit DEFLATE verwendet.

Gzip ist sowohl ein Komprimierungsalgorithmus basierend auf DEFLATE, aber weniger belastet mit potenziellen Patenten usw., und ein Dateiformat zum Speichern einer einzelnen komprimierten Datei. Es unterstützt das Komprimieren einer beliebigen Anzahl von Dateien und Ordnern, wenn es mit tar kombiniert wird. Die resultierende Datei hat eine Erweiterung von .tgz oder .tar.gz und wird umgangssprachlich als tarball bezeichnet.

zlib ist eine Bibliothek von Funktionen, die DEFLATE in seiner häufigsten LZ77 Inkarnation umfassen.

40voto

Tim Zimmermann Punkte 6192

Der wichtigste Unterschied besteht darin, dass gzip nur in der Lage ist, eine einzelne Datei zu komprimieren, während zip mehrere Dateien nacheinander komprimiert und sie anschließend in eine einzige Datei archiviert. Daher wird gzip die meiste Zeit mit tar verwendet (obwohl es auch andere Möglichkeiten gibt). Dies bringt einige Vor- und Nachteile mit sich.

Wenn Sie ein großes Archiv haben und nur eine einzige Datei benötigen, müssen Sie die gesamte gzip-Datei entpacken, um zu dieser Datei zu gelangen. Dies ist bei einer Zip-Datei nicht erforderlich.

Andererseits wird das Zip-Archiv wesentlich größer sein, wenn Sie 10 ähnliche oder sogar identische Dateien komprimieren, da jede Datei individuell komprimiert wird, während bei gzip in Kombination mit tar eine einzelne Datei komprimiert wird, was viel effektiver ist, wenn die Dateien ähnlich sind (gleich sind).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X