Pregunta

Estoy creando un archivo zip que contiene dos archivos idénticos en diferentes rutas. ¿El formato de archivo ZIP admite algo parecido al concepto Unix de enlaces duros? Con esto me refiero a la capacidad de almacenar el archivo solo una vez (guardar espacio), pero indexar ese blob de datos en dos rutas diferentes dentro del archivo ZIP.

Si el formato de archivo admite esto, ¿cómo podría crear un archivo de este tipo usando herramientas gratuitas en Ubuntu?

¿Fue útil?

Solución

No, el Formato de archivo zip no admite esto. Esto se debe a que el encabezado del archivo local contiene información sobre el archivo, incluido su nombre, seguido inmediatamente por los datos comprimidos para el archivo. No es posible que dos encabezados de archivos locales diferentes apunten a los mismos datos comprimidos.

Otros consejos

Como dijo @Greg, Zip no es compatible con los enlaces duros.

Pero si entiendo bien, su propósito es reducir el tamaño del archivo comprimido. Así que pensemos en una solución alternativa.

Ejecutemos pruebas simples para verificar la relación de compresión de diferentes bibliotecas de archivo. He creado dos archivos binarios idénticos y los comprimí usando ZIP, BZ2, RAR y 7Z.

  8641969  test.bin
  8641969  test2.bin

La primera vez que solo se comprimió un archivo. La segunda vez se comprimieron dos archivos:

CÓDIGO POSTAL:

$zip -9 test1.zip test.bin
$zip -9 test2.zip test.bin test2.bin

 8636837  test1.zip
17273654  test2.zip 

Bzip2:

$export BZIP=--fast
$tar cjf test1.tbz test.bin 
$tar cjf test2.tbz test.bin test2.bin 

 8694997  test1.tbz
17389167  test2.tbz

7Z:

$7z a -mx=9 test1.7z test.bin 
$7z a -mx=9 test2.7z test.bin test2.bin 

 8705285  test1.7z
 8707054  test2.7z

Rar:

$rar a -m5 test1.rar test.bin
$rar a -m5 test2.rar test.bin test2.bin 

 8649970  test1.rar
17299916  test2.rar

Conclusión: Parece que solo 7Z hace el trabajo bien. Considere usarlo en su aplicación.

Por supuesto, deberá hacer más pruebas en su entorno con sus archivos para ver si realmente es lo que necesita. También puede jugar con opciones para ver en qué nivel de compresión obtiene la mejor relación de compresión/equilibrio de velocidad.

Archivos de alquitrán admite enlaces duros

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top