Question

Je crée une archive zip contenant deux fichiers identiques sur différents chemins. Le format d'archives ZIP soutient-il quelque chose qui ressemble au concept UNIX des liens durs? J'entends par là la possibilité de stocker le fichier une seule fois (enregistrer l'espace), mais d'indexer ces données blob sur deux chemins différents dans l'archive zip.

Si le format de fichier prend en charge cela, comment pourrais-je créer une telle archive en utilisant des outils gratuits dans Ubuntu?

Était-ce utile?

La solution

Non, le Format de fichier zip ne prend pas en charge cela. En effet, l'en-tête de fichier local contient des informations sur le fichier, y compris son nom, suivi immédiatement par les données compressées du fichier. Il n'est pas possible pour deux en-têtes de fichiers locaux différents de pointer vers les mêmes données compressées.

Autres conseils

Comme l'a dit @Greg, Zip ne prend pas en charge les links Hardlinks.

Mais si je comprends bien, votre objectif est de réduire la taille des archives compressées. Pensons donc à une solution alternative.

Permet d'exécuter des tests simples pour vérifier le rapport de compression de différentes bibliothèques d'archives. J'ai créé deux fichiers binaires identiques et les ai compressés en utilisant ZIP, BZ2, RAR et 7Z.

  8641969  test.bin
  8641969  test2.bin

Première fois qu'un seul fichier a été compressé. La deuxième fois, deux fichiers ont été compressés:

ZIP *: FRANÇAIS:

$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

Rare:

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

 8649970  test1.rar
17299916  test2.rar

Conclusion: Il semble que seulement 7Z fasse bien le travail. Envisagez de l'utiliser dans votre application.

Bien sûr, vous devrez faire plus de tests dans votre environnement avec vos fichiers pour voir si c'est vraiment ce dont vous avez besoin. Vous pouvez également jouer avec des options pour voir à quel niveau de compression vous obtenez le meilleur rapport de compression / équilibre de vitesse.

Les archives de goudron prennent en charge les liens durs

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top