74 votes

Compression de dossiers sur un mac, sans le .DS_Store

Existe-t-il un moyen de se débarrasser du .DS_Store lors de la compression d'un dossier sur un Mac ?

Je travaille sur un Mac et j'envoie des travaux aux clients au format zip, mais je suis toujours interrogé sur le dossier .DS_Store qu'ils contiennent. Cela semble inévitable, à moins que j'ouvre le dossier sous Windows, que je supprime le dossier .DS_Store et que je le comprime à cet endroit. C'est un vrai casse-tête.

Existe-t-il des solutions de contournement faciles ?

127voto

whaley Points 1556

Si vous n'avez pas peur de sauter dans le terminal, c'est assez facile. Si vous êtes dans /Users/username qui est votre répertoire $HOME et qu'il y a un sous-répertoire nommé foo que vous voulez compresser mais ignorer tous les fichiers .DS_Store, alors faites ce qui suit :

zip -r foo.zip foo -x "*.DS_Store"

Pour interpréter cela, nous exécutons l'exécutable zip avec les paramètres/arguments suivants :

  • -r pour inclure récursivement tous les répertoires sous les cibles que nous voulons zipper.
  • foo.zip est le nom de l'archive zip que nous créons
  • foo est le répertoire cible que nous voulons compresser
  • -x "*.DS_Store" exclut tous les fichiers dont le chemin se termine par la chaîne ".DS_Store".

Aucune application tierce n'est nécessaire et il n'est pas non plus nécessaire de détruire vos fichiers .DS_Store - il suffit de s'appuyer sur tous les outils Unix intégrés à OSX/Darwin.

6voto

Michiel Roos Points 196

Vous pouvez créer une application d'automatisation qui accepte un dossier en entrée et produit un fichier zip du contenu du dossier, sans aucun détail.

Stockez cette application dans /Users/you/Applications, puis faites-la glisser dans la barre d'outils de votre finder. Vous pouvez ensuite faire glisser des dossiers sur l'application depuis n'importe quelle fenêtre du Finder.

Create an automator application

Ajouter ' obtenir les éléments sélectionnés de l'explorateur étape. Et ajoutez également une étape ' exécuter Shell Shell avec l'étape Passer l'entrée L'option ' est réglée sur ' comme arguments '.

Add workflow steps

Le script :

name=("$@")
cd "$name"
zipFileName=`basename "$name"`
zip "${zipFileName}.zip" -r ./* \
    -x */.DS_Store \
    -x */.git \
    -x */.svn \
    -x */.idea \
    -X */__MACOSX
mv "${zipFileName}.zip" ../

Accepte un dossier en entrée et produit un fichier zip avec le nom du dossier.

4voto

James Taylor Points 441

Si vous avez déjà créé l'archive zip (ou si vous voulez un moyen simple de supprimer les fichiers .DS_Store après la création du zip), cela supprimera tous les fichiers .DS_Store à n'importe quel chemin dans l'archive zip :

zip -d archive.zip "*/*.DS_Store"

réponse de whaley reste définitivement le meilleur, car il peut être aliasé et oublié. Dans mon cas, j'ai créé le zip à partir de l'utilitaire d'archivage, puis j'ai réalisé que je devais les supprimer.

3voto

Delameko Points 265

Je ne pense pas qu'il y ait un moyen de le faire par défaut, mais il y a deux façons auxquelles je pense pour obtenir ce que vous voulez.

Tout d'abord, j'ai trouvé une application gratuite appelée FolderWasher . Déposez le dossier sur l'application et elle supprimera les fichiers .DS_Store et le compressera pour vous.

Alternativement (et potentiellement mieux qu'un logiciel tiers), vous pouvez utiliser Automator pour nettoyer l'archive après sa création. En fait, il existe déjà un action créée pour ça. Ce n'est qu'une étape supplémentaire, et vous pouvez faire glisser l'action vers le Finder pour la retrouver facilement.

2voto

D0SBoots Points 1292

Ouvrez Terminal (/Applications/Utilies/Terminal.app) et exécutez la commande suivante pour afficher les fichiers cachés :

defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder

Pour masquer les fichiers cachés, il suffit d'exécuter :

defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder

Vous pouvez supprimer les fichiers .DS_Store comme n'importe quel autre fichier sans nuire à votre répertoire. Comme indiqué sur wikipedia, "DS_Store (Desktop Services Store) est un fichier caché créé par le système d'exploitation Mac OS X d'Apple Inc. pour stocker les attributs personnalisés d'un dossier tels que la position des icônes ou le choix d'une image de fond."

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X