Compressez sans .DS_Store et __MACOSX

24

Lorsque je compresse un dossier ou un fichier par un menu contextuel de Mac OS X, le fichier archivé contient les dossiers .DS_Store et __MACOSX . Étant donné que je partage le fichier archivé en ligne pour téléchargement, les utilisateurs de Windows tentent par erreur de rechercher le fichier dans le dossier __MACOSX .

J'ai besoin d'une option d'archivage plus propre. Je ne souhaite pas inclure .DS_Store et le dossier __MACOSX , mais uniquement 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 recherche une solution par menu contextuel si possible.

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

John Bernard
la source

Réponses:

33

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

Ouvrez le terminal (recherchez le terminal sous les projecteurs)
Accédez au dossier que vous souhaitez compresser à l'aide de la commande cd
Coller cezip -r dir.zip . -x ".*" -x "__MACOSX"

Exemple: Disons que vous avez un dossier sur votre bureau appelé Dossier avec des trucs à compresser.
Ouvrez le terminal et écrivez les commandes suivantes:
cd Desktop/Folder
zip -r dir.zip . -x ".*" -x "__MACOSX"

Vous avez maintenant un fichier appelé dir.zip sans fichiers __MACOSX et. * Dans le dossier Folder sur votre bureau.

iTunes
la source
1
+1 Pouvez-vous envelopper cela dans un service d'automatisation?
fd0
4
Techniquement parlant, si vous utilisez zippour créer le fichier zip, "__MACOSX /" ne sera pas créé en premier lieu, donc tout ce dont vous avez vraiment besoin est zip -r dir.zip .. Cependant, si "__MACOSX /" s'y glisse d'une manière ou d'une autre, votre solution s'en débarrassera.
Edward Falk
2
Vous pouvez également facilement vérifier que votre fichier zip ne contient pas __MACOSX en tapant dans la consolezipinfo dir.zip
Fostah
13

Juste quelques informations supplémentaires ...

Ma compréhension est que __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 normalement pas être 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 se produisent lorsque vous envoyez votre fichier .zip à des utilisateurs Windows ou Linux, ou utilisez simplement le programme général unzippour les décompresser. Ces outils ne sauront pas que __MACOSX est spécial et le déballeront simplement.

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

zip -r dir.zip .

S'il 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 parce que si pour une raison quelconque __MACOSX existe réellement dans votre répertoire (par exemple parce que vous l'avez déjà utilisé unzippour le créer), l'option -x l'empêchera d'être emballée.

Edward Falk
la source
4

Essayez Keka . Il est livré avec une option pour exclure .DS_Store

entrez la description de l'image ici

ohho
la source
2

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

Il s'agit d'une application graphique, mais elle prend en charge Applescript & Services, avec laquelle vous pouvez exécuter des préréglages avec vos paramètres par défaut - y compris en omettant les fichiers spécifiques à Mac comme .DS_Store & __MACOSX. Peut-être mérite un coup d'oeil.

Dans l'aide BetterZip ...

BetterZip prend en charge deux services: un pour l'extraction et un pour la création d'archives. Vous pouvez configurer ce que les services BetterZip feront avec les 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 dans le menu Finder> Services ou le sous-menu Services dans le menu contextuel.

Vous pouvez même définir des raccourcis clavier pour les services BetterZip, par exemple, ^ ⌥⌘C pour la compression et ^ ⌥⌘E pour l'extraction. Pour définir des raccourcis pour les services, accédez à 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 apparaît. Appuyez sur le raccourci souhaité.

Un de mes presets de sauvegarde ...

entrez la description de l'image ici

Tetsujin
la source
C'est une bonne option GUI pour les utilisateurs de Setapp.
Leo