Dividiendo en muchos archivos .ZIP usando 7-Zip

12

Si tengo una carpeta de 100 GB y la divido en ZIP, ¿hay alguna diferencia en cuánto espacio de disco se consume si la divido en 100 archivos .ZIP a 1 GB cada uno o 10 archivos .ZIP a 10 GB cada uno?

¿100 archivos .ZIP a 1 GB cada uno ocupan más espacio que 10 archivos .ZIP a 10 GB cada uno?

Kong
fuente
¿Y no puedes averiguarlo porque?
Dave
55
¿Por qué no puedes probarlo?
Peter Mortensen
1
Cada archivo ZIP independiente tiene algo de sobrecarga. Sin embargo, puede cortar un archivo ZIP en partes que se pueden volver a ensamblar. Esas piezas no tienen el código postal de arriba en cada una, y si se divide en el sector o bloquea los límites, no contienen espacio desperdiciado.
Fixer1234

Respuestas:

18

¡Vamos a averiguar!

Archivos de 100 MB (27 piezas):

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

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

Archivos de 10 MB (262 piezas):

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

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

Resultados: El archivo dividido de 10 MB ocupa 24 KB adicionales. Entonces, sí, hay una diferencia, los 100 archivos de 1 GB ocuparán más espacio que los archivos de 10 10 GB.

Sin embargo, la diferencia parece ser insignificante. Yo iría por lo que sea más conveniente para ti.

Layne Bernardo
fuente
44
duno genera el tamaño en bytes de manera predeterminada (a menos que sus 270 millones de archivos se hayan convertido en 2,677,908 bytes). Muestra el tamaño de los archivos en el disco, que puede ser diferente del tamaño real de los datos (puede ser aplicable para cargar o almacenar en otros sistemas de archivos)
Xen2050
Tienes razón, en realidad está dando salida en KB. He editado la respuesta para corregir esta discrepancia. El archivo original es un ISO de Kali Linux, es ~ 2.6GB. Tiene un buen punto sobre el tamaño en el disco frente al tamaño real de los datos, estaba pensando específicamente en el tamaño en el disco porque explica la sobrecarga de tener archivos adicionales, pero tiene razón en que sería diferente dependiendo de lo que realmente estás haciendo con los archivos.
Layne Bernardo
Lo siento, crucé con tu respuesta en gran medida similar mientras revisaba las cadenas de ejecución.
AFH
El tamaño máximo del archivo zip es de 4 GB.
pbies
1
Sí, por eso no me molesté en calcular un porcentaje. No creo que funcione con un porcentaje plano del tamaño del archivo original, especialmente teniendo en cuenta las diferencias en los sistemas de archivos.
Layne Bernardo
15

Cada archivo tiene una sobrecarga del sistema de archivos del espacio del sector lógico no utilizado después del final del archivo, pero esto se elimina si el tamaño de división es un múltiplo del tamaño del sector lógico (no necesariamente es cierto en mi ejemplo a continuación).

Puede haber bytes adicionales utilizados por las entradas de directorio adicionales, pero estos no figurarán a menos que el directorio ahora ocupe un sector lógico adicional.

Los archivos divididos son idénticos en contenido a los creados por un programa divisor binario con el mismo tamaño de división.

Verifiqué esto en Linux usando la versión GUI en un archivo de 7 + MB, dando 8 archivos divididos de 1 MB de tamaño con 7-Zip ( File.7z.00?), luego creé un único archivo completo ( Full.7z), con el que dividí:

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 {001..008}; do cmp Full.7z.$f File.7z.$f; done;     # Compare splits with 7z volumes

Para probar en otro sistema operativo, es posible que deba descargar o escribir un programa divisor apropiado.

AFH
fuente