Creé dos archivos ZIP del mismo directorio. Uno con la GUI, el otro con:
$ zip -r alpha_cmd.zip Alpha
El directorio Alpha tiene 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 comando.
¿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 exactamente el mismo número de bytes. Básicamente, desconfío de las posibles inconsistencias introducidas al administrar mi sistema de archivos con la GUI y con los comandos de shell.
ditto -ck --rsrc --sequesterRsrc --keepParent folder folder.zip
Respuestas:
La compresión desde el Finder agrega una carpeta __MACOSX, invisible en Mac, que contiene bifurcaciones de recursos de OS X como iconos personalizados y demás. De Wikipedia :
fuente
Incluso aparte de la causa principal en este caso (Finder agrega cosas ocultas adicionales, como dice empedocle), los diferentes tamaños para los ZIP de los mismos datos no indican un problema, cuando la diferencia de tamaño es una fracción de un porcentaje.
Las diferentes implementaciones de ZIP pueden tener un nivel de compresión predeterminado diferente (compensación 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 en el nivel de compresión predeterminado.
Por ejemplo, 7-Zip generalmente crea
.zip
archivos más pequeños que otros programas ZIP. (Y no, no estoy hablando de su propio.7z
formato de archivo. También tiene un mejor compresor ZIP simple).zipcmp es un programa cmdline que puede comparar archivos ZIP. El valor predeterminado es 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 solo se comprimen de manera diferente (si el tamaño comprimido difiere). Siempre que los archivos ZIP no estén dañados, por supuesto. Utilícelo
unzip -t foo.zip
para probar un archivo ZIP en busca de errores de descompresión, CRC no coincidentes, etc.fuente
/usr/bin/zip
con una versión diferente seríaln /usr/bin/zip /usr/bin/zip.standard; mv new_zip /usr/bin/zip
. De esa manera, siempre tiene un/usr/bin/zip
, porque reemplaza atómicamente la implementación del sistema. Además, la versión anterior simplemente se renombra, no se mueve a/tmp
(que posiblemente esté en un sistema de archivos diferente). Para deshabilitarla, simplemente cambiaría el nombre azip.disab
, vería si Finder se rompe y luego cambiaría el nombre. Pero las funciones de la biblioteca de creación de zip son comunes. El buscador casi seguro no bifurca / exec/usr/bin/zip
.