GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist effizienter - tar- oder zip-Komprimierung? Was ist der Unterschied zwischen tar und zip?

tar macht nur eine einzelne Datei aus mehreren Dateien, es führt keine Komprimierung durch, es sei denn, es wird ein Komprimierungsprogramm wie gzip kombiniert oder bzip2 (die Sie innerhalb von tar aufrufen können mit -z oder -j Optionen bzw.). zip vereint Archivierung und Komprimierung in einem Programm.


tar

  • Angenommen, Sie lesen von einem Ende zum anderen - "Tape ARchive". (Das Alter des Befehls zeigt...)
  • Komprimiert nicht, aber Sie können den gesamten resultierenden Strom komprimieren, indem Sie ihn z. gzip und bzip2 (intern mit -z oder -j)
  • Speichert Unix-Dateiattribute :uid, gid, Berechtigungen (vor allem ausführbar). Die Standardeinstellung kann von Ihrer Distribution abhängen und kann mit Optionen umgeschaltet werden.

zip

  • Speichert MSDOS-Attribute . (Archiv, Schreibgeschützt, Ausgeblendet, System)
  • Komprimiert jede Datei und fügt sie dann einem Archiv hinzu
  • Fügt eine Dateitabelle am Ende der Datei ein
  • und erlaubt als Ergebnis der ersten beiden, nur die genauen Teile der Datei zu lesen, die Sie benötigen.

Die Tatsache, dass Zip die Dateien separat komprimiert, wirkt sich auf die Komprimierungsraten aus, insbesondere bei vielen kleinen ähnlichen Dateien.

(Zumindest war dies vor einem Jahrzehnt genau richtig.)


Tar bewahrt viel mehr Metadaten als Zip, siehe meinen Vergleich (es ist etwas veraltet):

(Zum Vergrößern klicken)

Tar besteht 65 % der Tests, während Zip nur 17 % besteht. Ich habe die Testsuite auf Github unter BSD-Lizenz verfügbar gemacht, damit Sie es selbst ausprobieren können, wenn Sie einen Mac haben. Für Linux bin ich mir nicht sicher, ob Metadaten vorhanden sind, daher sind diese Tests möglicherweise nicht relevant.


Linux
  1. Der Unterschied zwischen .exrc und .vimrc?

  2. Was ist der Unterschied zwischen strtok_r und strtok_s in C?

  3. Was ist der Unterschied zwischen fsync und syncfs?

  4. Was ist der Unterschied zwischen fsck und e2fsck?

  5. Was ist der Unterschied zwischen `su -` und `su --login`?

Was ist der Unterschied zwischen Linux und Unix?

Der Unterschied zwischen mehr, weniger und den meisten Befehlen

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?