Los archivos ZIP creados con GUI tienen más bytes que los archivos ZIP creados en un shell

15

Creé dos archivos ZIP del mismo directorio. Uno con la GUI, el otro con:

$ zip -r alpha_cmd.zip Alpha

El directorio Alpha es de 33.640 MB con 164 elementos.

El archivo ZIP creado por la GUI es 2,100 bytes más grande que el archivo ZIP creado en la línea de comandos.

¿Por qué el archivo ZIP creado con la GUI es más grande?

Nota : Aunque los archivos ZIP tienen diferentes tamaños, cuando se descomprimen, el directorio de cada uno tiene el mismo número de bytes. Básicamente, desconfío de las posibles incoherencias introducidas al administrar mi sistema de archivos con la GUI y con los comandos de shell.

    
pregunta david 07.07.2015 - 17:31

2 respuestas

20

La compresión desde el Finder agrega una carpeta __MACOSX, invisible en las Mac, que contiene las bifurcaciones de recursos de OS X como íconos personalizados y demás. De Wikipedia :

  

La bifurcación de recursos es una bifurcación o sección de un archivo en el sistema operativo Apple Mac OS que se utiliza para almacenar datos estructurados junto con los datos no estructurados almacenados en la bifurcación de datos. Una bifurcación de recursos almacena información en una forma específica, que contiene detalles como mapas de bits de iconos, las formas de las ventanas, definiciones de los menús y sus contenidos, y el código de la aplicación (código de máquina). Por ejemplo, un archivo de procesamiento de texto puede almacenar su texto en la bifurcación de datos, mientras almacena cualquier imagen incrustada en la bifurcación de recursos del mismo archivo. La bifurcación de recursos es utilizada principalmente por ejecutables, pero cada archivo puede tener una bifurcación de recursos.

    
respondido por el empedocle 07.07.2015 - 17:54
4

Incluso aparte de la causa principal en este caso (Finder agrega elementos ocultos adicionales, como dice empedocle), los diferentes tamaños para ZIP de los mismos datos no indican un problema, cuando la diferencia de tamaño es una fracción del porcentaje.

Las diferentes implementaciones de ZIP pueden tener un nivel de compresión predeterminado diferente (compromiso entre el tiempo de CPU y el tamaño guardado), o simplemente tener un código diferente que guarda más o menos coincidencias, ahorrando más o menos bytes al nivel de compresión predeterminado.

Por ejemplo, 7-Zip generalmente genera .zip archivos más pequeños que otros programas ZIP. (Y no, no estoy hablando de su propio formato de archivo .7z . También tiene un mejor compresor ZIP simple).

zipcmp es un programa de cmdline que puede comparar archivos ZIP. Por defecto, comparar solo el directorio ZIP, para verificar que todos los archivos tengan el mismo nombre, tamaño y CRC . Si este es el caso, es casi seguro que ambos archivos ZIP tengan el mismo contenido, pero se comprimen de manera diferente (si el tamaño comprimido es diferente). Siempre que los archivos ZIP no estén dañados, por supuesto. Utilice unzip -t foo.zip para probar un archivo ZIP en busca de errores de descompresión, CRC no coincidentes, etc.

    
respondido por el Peter Cordes 07.07.2015 - 19:34

Lea otras preguntas en las etiquetas