Ich habe eine große Anzahl von Zip-Dateien, die mit dem Befehl zip komprimiert wurden. Ich möchte sie mit dem Flag -9 erneut komprimieren, um das Komprimierungsverhältnis zu verbessern. Weiß jemand, ob dies ohne manuelles Dekomprimieren und anschließendes Komprimieren möglich ist?
PS. Ich muss sie als Zip-Dateien behalten, da sie Windows-Benutzern bereitgestellt werden (und als solche Leerzeichen in ihren Namen haben).
linux
zip
compression
Smartelf
quelle
quelle
Antworten:
Sie können das Komprimierungsverhältnis nicht verbessern, ohne die Daten zu dekomprimieren. Sie müssen nicht alle Zip-Dateien extrahieren, bevor Sie sie komprimieren. Ich würde jedoch empfehlen, eine ganze Zip-Datei vor dem erneuten Komprimieren zu dekomprimieren.
Es ist möglich, die Dateien in einer Zip-Datei einzeln erneut zu komprimieren und erneut hinzuzufügen, bevor Sie zur nächsten in der Zip-Datei enthaltenen Datei wechseln. Dies erfordert N Umschreibungen der Zip-Datei für eine Zip-Datei, die N Dateien enthält. Es ist viel effizienter, die N Dateien zu extrahieren und die neue Zip-Datei auf einmal zu generieren, wobei alle Dateien mit komprimiert werden
-9
.quelle
unzip
/zip
Halten der Metadaten ist die gleiche wahrscheinlich schwieriger.Es gibt ein Dienstprogramm namens AdvanceCOMP , das genau das tut, wonach Sie suchen. Es komprimiert ZIP- und GZ-Dateien (und einige andere) ohne Zwischenextraktion auf die Festplatte. (Ich glaube, dass der verwendete Mechanismus darin besteht, die Daten zu dekomprimieren und erneut zu komprimieren, aber dafür müssen keine Dateien auf die Festplatte geschrieben oder Metadaten neu generiert werden.)
quelle