15 votes

Les fichiers ZIP créés avec l'interface graphique ont plus d'octets que les fichiers ZIP créés dans un shell.

J'ai créé deux ZIP dans le même répertoire. L'un avec l'interface graphique, l'autre avec :

$ zip -r alpha_cmd.zip Alpha

El Alpha Le répertoire est de 33.640 MB avec 164 items.

Le fichier ZIP créé par l'interface graphique est plus grand de 2 100 octets que le fichier ZIP créé en ligne de commande.

Pourquoi le fichier ZIP créé avec l'interface graphique est-il plus volumineux ?

Note : Même si les fichiers ZIP ont des tailles différentes, une fois décompressés, le répertoire de chacun d'eux a exactement le même nombre d'octets. En fait, je me méfie beaucoup des incohérences possibles introduites par la gestion de mon système de fichiers avec l'interface graphique et avec des commandes shell.

0 votes

L'un peut avoir des fichiers invisibles, l'autre non ?

0 votes

De este Réponse de SU essayez ditto -ck --rsrc --sequesterRsrc --keepParent folder folder.zip

0 votes

@Mark j'ai oublié de répondre. Cette commande "ditto" crée exactement le même fichier que le Finder. Et les fichiers ditto / zip / "Finder ZIP" sont tous multiplateformes. Merci pour votre temps et vos efforts.

21voto

davidnuclear Points 1

La compression à partir du Finder ajoute un dossier __MACOSX, invisible sur les Macs, qui contient les ressources OS X comme les icônes personnalisées et autres. Depuis Wikipedia :

La fourche de ressources est une fourche ou une section d'un fichier du système d'exploitation Apple Mac OS utilisée pour stocker des données structurées avec les données non structurées stockées dans la fourche de données. Une fourche de ressources stocke des informations sous une forme spécifique, contenant des détails tels que les bitmaps des icônes, les formes de Windows, les définitions des menus et leur contenu, et le code de l'application (code machine). Par exemple, un fichier de traitement de texte peut stocker son texte dans la fourche de données, tout en stockant les images intégrées dans la fourche de ressources du même fichier. La fourche de ressources est surtout utilisée par les exécutables, mais tout fichier peut avoir une fourche de ressources.

6 votes

Correction mineure : il ne s'agit pas seulement de bifurcations de ressources, mais aussi de toutes sortes de métadonnées de fichiers que le format zip ne gère pas nativement, encodées en PommeDouble format. Cela comprendra les commentaires des projecteurs, les balises, les indicateurs du Finder, les données de quarantaine, etc. ainsi que les bifurcations de ressources.

0 votes

Et je me demandais ce qu'était le dossier "__MACOSX" dans la plupart des zips... Plus on en sait, mieux c'est, hein ?

0 votes

Une autre référence qui pourrait éclairer la réponse : stackoverflow.com/questions/107903/

4voto

Peter Cordes Points 493

Même en dehors de la cause principale dans ce cas (le Finder ajoutant des éléments cachés supplémentaires, comme le dit Empedocle), des tailles différentes pour les ZIP des mêmes données n'indiquent pas un problème, lorsque la différence de taille est une fraction de pourcentage.

Des implémentations ZIP différentes peuvent avoir un niveau de compression par défaut différent (compromis entre le temps CPU et la taille sauvegardée), ou simplement avoir un code différent qui sauvegarde plus ou moins de correspondances, sauvegardant plus ou moins d'octets au niveau de compression par défaut.

Par exemple, 7-Zip fait généralement plus petit .zip que les autres programmes ZIP. (Et non, je ne parle pas de son propre programme ZIP). .7z format de fichier. Il dispose également d'un meilleur compresseur plain-ZIP).

zipcmp est un programme en ligne de commande qui permet de comparer des fichiers ZIP. Par défaut, il ne compare que le répertoire ZIP, pour vérifier que tous les fichiers ont le même nom, la même taille et le même format. CRC . Si c'est le cas, il est presque certain que les deux fichiers ZIP ont le même contenu, mais qu'ils ont été compressés différemment (si la taille de la compression est différente), à condition que les fichiers ZIP ne soient pas endommagés, bien sûr. Utilisez unzip -t foo.zip pour tester un fichier ZIP afin de détecter les erreurs de décompression, les CRC non concordants, etc.

0 votes

Les dossiers __MACOSX n'affecteraient-ils pas le calcul du CRC ?

1 votes

Le ZIP stocke dans un CRC séparé le contenu non compressé de chaque fichier compressé. (Donc non, pour deux raisons : les répertoires ne contiennent que d'autres fichiers, pas un bloc de données propre. Et deuxièmement, les CRC stockés dans les métadonnées du ZIP sont pour chaque fichier séparément). Ainsi, tous les fichiers identiques entre deux fichiers ZIP correspondraient en termes de CRC et de taille décompressée.

0 votes

@PeterCordes Le fait que différentes implémentations ZIP puissent produire des tailles de fichiers différentes est exactement ce qui a attiré mon attention. Je savais que le shell exécutait "/usr/bin/zip". Mais comme Finder me donnait une taille de fichier différente, je pensais que Finder utilisait un exécutable complètement différent (et cela me contrariait). Si je savais comment faire su Root et si j'avais un peu de courage, je déplacerais "/usr/bin/zip" vers "/tmp", puis j'essaierais un zip Finder (et il ferait mieux d'émettre une erreur). Mais, j'ai du travail et je ne peux pas risquer de déstabiliser mon Mac !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X