Domanda

Sto creando un archivio zip contenente due file identici in percorsi diversi. Il formato dell'archivio zip supporta qualcosa di simile al concetto UNIX di collegamenti duri? Con questo intendo la possibilità di archiviare il file solo una volta (salvare lo spazio), ma di indicizzare quei dati su due percorsi diversi all'interno dell'archivio ZIP.

Se il formato di file supporta questo, come potrei creare un tale archivio usando strumenti gratuiti in Ubuntu?

È stato utile?

Soluzione

No, il Formato file zip non lo supporta. Questo perché l'intestazione del file locale contiene informazioni sul file, incluso il suo nome, seguito immediatamente dai dati compressi per il file. Non è possibile che due diverse intestazioni di file locali indicano gli stessi dati compressi.

Altri suggerimenti

Come ha detto @greg, Zip non supporta HardLink.

Ma se capisco bene, il tuo scopo è ridurre le dimensioni dell'archivio compresso. Quindi pensiamo a una soluzione alternativa.

Esegui test semplici per verificare il rapporto di compressione di diverse librerie di archivio. Ho creato due file binari identici e li ho compressi usando Zip, BZ2, RAR e 7Z.

  8641969  test.bin
  8641969  test2.bin

La prima volta è stato compresso solo un file. Seconda volta che sono stati compressi due file:

cerniera lampo:

$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

Conclusione: Sembra che solo 7Z faccia bene il lavoro. Considera di usarlo nella tua applicazione.

Naturalmente dovrai fare più test nel tuo ambiente con i tuoi file per vedere se è davvero ciò di cui hai bisogno. Inoltre puoi giocare con le opzioni per vedere quale livello di compressione ottieni il miglior equilibrio tra rapporto di compressione/velocità.

Gli archivi di catrame supportano collegamenti rigidi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top