Tengo una gran cantidad de archivos zip que se comprimieron con el comando zip. Me gustaría volver a comprimirlos con el indicador -9 para mejorar la relación de compresión. ¿Alguien sabe si eso se puede hacer sin descomprimir manualmente y luego comprimir?
PD. Necesito guardarlos como archivos zip ya que se sirven a los usuarios de Windows (y como tales tienen espacios en blanco en sus nombres)
linux
zip
compression
Inteligente
fuente
fuente
Respuestas:
No puede mejorar la relación de compresión sin descomprimir los datos. No tiene que extraer todos los archivos zip antes de comprimirlos, pero recomendaría descomprimir un archivo zip completo antes de volver a comprimirlos.
Es posible volver a comprimir los archivos en un archivo zip de uno en uno y volver a agregarlos antes de pasar al siguiente archivo contenido en el archivo zip. Esto requiere N reescrituras del archivo zip para un archivo zip que contenga N archivos. Es mucho más eficiente extraer los archivos N y generar el nuevo archivo zip de una sola vez, comprimiendo todos los archivos
-9
.fuente
unzip
/zip
mantener los metadatos iguales es probablemente más difícil.Hay una utilidad llamada AdvanceCOMP que hace exactamente lo que estás buscando. Recomprime archivos ZIP y GZ (y algunos otros) sin extracción intermedia en el disco. (Creo que el mecanismo utilizado es descomprimir los datos y volver a comprimirlos, pero eso no requiere escribir archivos en el disco o regenerar metadatos).
fuente