83 votes

Compresser sans .DS_Store et __MACOSX

Lorsque je compresse un dossier ou un fichier par le menu de clic droit de Mac OS X, le fichier archivé contient .DS_Store y __MACOSX dossiers. Comme je partage le fichier archivé en ligne pour le télécharger, les utilisateurs de Windows qui tentent par erreur de rechercher le fichier dans le dossier __MACOSX dossier.

J'ai besoin d'une option d'archivage plus propre. Je ne veux pas inclure .DS_Store y __MACOSX mais seulement le fichier ou le dossier dans le fichier d'archive.

Tout ce que j'ai trouvé est CleanArchiver mais c'est une application GUI. Cela prend vraiment du temps et j'ai beaucoup de fichiers à compresser. Je cherche une solution par menu contextuel si possible.

Y a-t-il une solution que vous pouvez recommander pour une compression propre ?

0 votes

Dans mon cas, je conditionnais les fichiers pour les utiliser dans les fonctions en nuage de GCP. Les fichiers cachés provoquent l'erreur

110voto

iTunes Points 1301

Vous pouvez utiliser zip dans Terminal pour compresser les fichiers sans le .DS_Store , __MACOSX et autres .* des fichiers.

  1. Ouvrez le terminal (recherchez le terminal dans le spotlight)
  2. Naviguez jusqu'au dossier que vous voulez zipper en utilisant le bouton cd commande
  3. Collez ça :

    zip -r dir.zip . -x ".*" -x "__MACOSX"

Exemple

Disons que vous avez un dossier sur votre bureau appelé Folder avec des trucs à zipper.
Ouvrez un terminal et écrivez les commandes suivantes :

  1. cd Desktop/Folder

  2. zip -r dir.zip . -x ".*" -x "__MACOSX"

Maintenant, vous avez un fichier appelé dir.zip sin __MACOSX y .* dans le dossier Folder sur votre bureau.

1 votes

+1 Pouvez-vous intégrer cela dans un service d'automatisation ?

6 votes

Techniquement parlant, si vous utilisez zip pour créer le fichier zip, "__MACOSX/" ne sera pas créé en premier lieu, donc tout ce dont vous avez besoin est zip -r dir.zip . . Toutefois, si "__MACOSX/" s'y est glissé d'une manière ou d'une autre, votre solution s'en débarrassera.

5 votes

Vous pouvez également vérifier facilement que votre fichier zip ne contient pas de __MACOSX en tapant dans la console zipinfo dir.zip

27voto

Edward Falk Points 799

Juste quelques informations supplémentaires ...

D'après ce que j'ai compris, __MACOSX est un sous-répertoire créé artificiellement par les outils de l'interface graphique Mac pour contenir des métadonnées telles que des attributs étendus qui ne peuvent pas être normalement enregistrés dans un fichier zip.

Si vous utilisez les outils de l'interface graphique Mac pour décompresser le fichier zip, les outils sauront quoi faire avec __MACOSX et le répertoire ne sera pas réellement décompressé.

Les problèmes surviennent lorsque vous envoyez votre fichier .zip à des utilisateurs de Windows ou de Linux, ou lorsque vous utilisez simplement l'utilitaire polyvalent unzip pour les déballer. Ces outils ne sauront pas que __MACOSX est spécial, et se contenteront de le décompresser.

L'option la plus simple est d'utiliser zip pour emballer votre fichier zip au lieu de l'outil intégré au Mac. zip ne créera pas __MACOSX et votre problème est résolu. (Vous perdrez les métadonnées dans le processus, mais vous n'en vouliez probablement pas de toute façon).

zip -r dir.zip dir

Si c'est trop tard, et que vous avez déjà un fichier zip avec __MACOSX, vous pouvez toujours le supprimer avec :

zip -d foo.zip __MACOSX .DS_Store

Enfin, la réponse acceptée est la meilleure car si, pour une raison ou une autre, __MACOSX existe effectivement dans votre répertoire (par exemple parce que vous avez précédemment utilisé la commande unzip pour le créer), l'option -x l'empêchera d'être emballé.

2 votes

.DS_Store est toujours créé lorsque l'on utilise zip -r dir.zip .

0 votes

Oui, je trouve cela ennuyeux. C'est similaire, mais pas identique à ce qui est stocké dans __MACOSX

1 votes

13voto

Joe Liversedge Points 2134

Essayez Keka . Il est doté d'une option permettant d'exclure les fichiers .DS_Store.

enter image description here

6voto

Ronald Petty Points 21

Sur la base de itunes réponse. J'avais besoin de supprimer également DS_Store dans les répertoires imbriqués comme suit.

zip -r my.zip . -x "**/.DS_Store"

4voto

Tetsujin Points 95239

Le seul que j'ai jamais vraiment utilisé est BetterZip [$20]

Il s'agit d'une application graphique, mais elle prend en charge Applescript et Services, ce qui vous permet d'exécuter des préréglages avec vos paramètres par défaut, y compris l'omission de fichiers spécifiques à Mac comme .DS_Store et __MACOSX. Cela vaut peut-être le coup de jeter un coup d'oeil.

Extrait de l'aide de BetterZip...

BetterZip supporte deux services : un pour l'extraction et un pour la création d'archives. créer des archives. Vous pouvez configurer ce que les services de BetterZip vont faire services BetterZip à l'aide de préréglages.

Pour utiliser un service, sélectionnez un ou plusieurs fichiers ou dossiers dans le Finder. et choisissez Compresser avec BetterZip ou Extraire avec BetterZip à partir du menu Finder > Services ou le sous-menu Services du menu contextuel.

Vous pouvez même définir des raccourcis clavier pour les services BetterZip, par ex, ^C pour la compression et ^E pour l'extraction. Pour définir les raccourcis pour les services pour les services, allez dans Préférences système > Clavier > Raccourcis clavier et choisissez Services dans le tableau de gauche. Dans le tableau de droite, faites défiler jusqu'à Fichiers et Dossiers, choisissez Compresser avec BetterZip et appuyez sur . Un champ de texte modifiable modifiable apparaît. Appuyez sur le raccourci souhaité.

Une de mes présélections de sauvegarde...

enter image description here

0 votes

C'est une bonne option d'interface graphique pour les utilisateurs de Setapp.

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