Aufteilen in viele ZIP-Dateien mit 7-Zip

1730
Kong

Wenn ich einen 100-GB-Ordner habe und ZIP-Dateien aufspalte, gibt es dann einen Unterschied, wie viel Speicherplatz belegt wird, wenn ich ihn in 100 ZIP-Dateien zu je 1 GB oder 10 ZIP-Dateien zu je 10 GB aufspalte?

Nehmen 100 ZIP-Dateien mit jeweils 1 GB mehr Speicherplatz als 10 ZIP-Dateien mit jeweils 10 GB in Anspruch?

10
Und du kannst es nicht herausfinden? Dave vor 5 Jahren 0
Warum kannst du es nicht einfach versuchen? Peter Mortensen vor 5 Jahren 5
Jede eigenständige ZIP-Datei hat einen gewissen Aufwand. Sie können eine ZIP-Datei jedoch in Teile zerlegen, die wieder zusammengefügt werden können. Diese Teile haben nicht den ZIP-Overhead in jedem, und wenn Sie an Sektoren- oder Blockgrenzen aufteilen, enthalten sie keinen verschwendeten Speicherplatz. fixer1234 vor 5 Jahren 1

2 Antworten auf die Frage

16
Layne Bernardo

Lass es uns herausfinden!

100 MB-Dateien (27 Stück):

7z a -tzip -v100M ./100m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./100m/ 2677884 ./100m/ 

10 MB-Dateien (262 Stück):

7z a -tzip -v10M ./10m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./10m/ 2677908 ./10m 

Ergebnisse: Das 10-MB-Split-Archiv belegt zusätzliche 24 KB. Ja, es gibt einen Unterschied, die 100 1 GB-Dateien beanspruchen mehr Speicherplatz als die 10 10 GB-Dateien.

Der Unterschied scheint jedoch zu vernachlässigen. Ich würde für das gehen, was für Sie bequemer ist.

"du" gibt die Größe standardmäßig nicht in Bytes aus (es sei denn, Ihre 270 Millionen Dateien wurden in 2.677.908 Bytes umgewandelt). Es zeigt die Größe der Dateien auf der Festplatte an, die sich von der tatsächlichen Datengröße unterscheiden kann (möglicherweise für das Hochladen oder Speichern auf anderen Dateisystemen). Xen2050 vor 5 Jahren 4
Sie sind richtig, es wird tatsächlich in KB ausgegeben. Ich habe die Antwort bearbeitet, um diese Diskrepanz zu korrigieren. Die Originaldatei ist eine Kali Linux ISO-Datei, sie ist ~ 2,6 GB. Sie haben eine gute Aussage über die Größe der Festplatte auf der Festplatte im Vergleich zur tatsächlichen Datengröße. Ich habe insbesondere über die Größe der Festplatte nachgedacht, da dies den zusätzlichen Aufwand für zusätzliche Dateien ausmacht, aber Sie haben Recht, dass es je nach Ihren Wünschen anders sein würde. mache eigentlich mit den archiven. Layne Bernardo vor 5 Jahren 0
Entschuldigung, ich habe Ihre weitgehend ähnliche Antwort gekreuzt, während ich die Laufzeichenfolgen überprüft habe. AFH vor 5 Jahren 0
Die maximale Größe der ZIP-Datei beträgt 4 GB. pbies vor 5 Jahren 0
Re * "Der Unterschied scheint zu vernachlässigen" *: Was ist das in% Peter Mortensen vor 5 Jahren 0
@PeterMortensen Siehe die andere Antwort. Der einzige Unterschied besteht darin, wie viel Speicherplatz das Dateisystem zum Speichern einer anderen Datei benötigt. Die Datei selbst ist nicht größer. Alexander O'Mara vor 5 Jahren 0
Ja, deshalb habe ich mich nicht die Mühe gemacht, ein Prozent zu berechnen. Ich denke nicht, dass es zu einem flachen Prozentsatz der ursprünglichen Dateigröße kommt, besonders wenn man die Unterschiede in den Dateisystemen berücksichtigt. Layne Bernardo vor 5 Jahren 1
@ PeterMortensen Es ist kein proportionaler Verlust. Es ist ein fester Aufwand pro Datei. Der resultierende "Prozentsatz" insgesamt hängt also von der Anzahl der Dateien in jedem Szenario ab und ist einfach zu berechnen. Lightness Races in Orbit vor 5 Jahren 0
16
AFH

Jede Datei hat nach dem Dateiende einen Dateisystem-Overhead an ungenutzten logischen Sektor-Speicherbereichen. Dies wird jedoch eliminiert, wenn die Aufteilungsgröße ein Vielfaches der logischen Sektor-Größe ist (was in meinem Beispiel nicht unbedingt der Fall ist).

Möglicherweise werden von den zusätzlichen Verzeichniseinträgen zusätzliche Bytes verwendet. Diese werden jedoch nur angezeigt, wenn das Verzeichnis jetzt einen zusätzlichen logischen Sektor belegt.

Die Aufteilungsdateien sind inhaltlich mit denen identisch, die von einem Binärsplitterprogramm mit der gleichen Aufteilungsgröße erstellt wurden.

Ich habe dies unter Linux überprüft, indem ich die GUI-Version für eine 7-MB-Datei verwendet habe, 8 geteilte Dateien von 1 MB Größe mit 7-Zip ( File.7z.00?) erhielt und dann ein einzelnes vollständiges Archiv ( Full.7z) erstellte, das ich mit: -

7z -v1000000 a File; # Create split volumes File.7z.00? 7z a Full File; # Create full archive Full.7z split -b 1000000 -a 3 --numeric-suffixes=1 Full.7z Full.7z.; # Split full archive into Full.7z.00? for f in ; do cmp Full.7z.$f File.7z.$f; done; # Compare splits with 7z volumes 

Um auf einem anderen Betriebssystem zu testen, müssen Sie möglicherweise ein geeignetes Splitterprogramm herunterladen oder schreiben.