web-dev-qa-db-fra.com

Compresser des dossiers sur un mac, sans le .DS_Store

Est-il possible de se débarrasser du .DS_Store lors de la compression d'un dossier sur un mac?

Je travaille sur un Mac et envoie du travail aux clients au format Zip, mais je suis toujours interrogé sur le dossier .DS_Store qui se trouve à l'intérieur. Cela semble inévitable sauf si j'ouvre le dossier sous Windows, puis supprime le .DS_Store et le compresse là. C'est un gros problème.

Existe-t-il des solutions faciles?

62
danixd

Si cela ne vous dérange pas de sauter dans le terminal, c'est très facile. Si vous êtes dans /Users/username, qui correspond à votre répertoire $ HOME et qu’il existe un sous-répertoire nommé foo que vous souhaitez compresser mais que vous ignorez tous les fichiers .DS_Store, procédez comme 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 compresser.
  • 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 de qualité n'est nécessaire, pas plus que vous n'avez besoin de supprimer vos fichiers .DS_Store. Vous n'avez qu'à vous fier à la qualité des outils Unix intégrés à OSX/Darwin.

105
whaley

Vous pouvez créer une application automator qui accepte un dossier en tant qu'entrée et génère un fichier Zip du contenu du dossier sans forcer.

Stockez cette application dans/Utilisateurs/vous/Applications, puis faites-la glisser dans la barre d’outils du Finder. Ensuite, vous pouvez faire glisser des dossiers sur l'application à partir de n'importe quelle fenêtre du Finder.

Create an automator application

Ajoutez l'étape ' obtenir les éléments sélectionnés du Finder '. Et ajoutez également une étape ' d'exécution du script shell ' avec l'option ' Pass input ' définie sur ' comme argument '.

Add workflow steps

Le scénario:

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 génère un fichier zip avec le nom du dossier.

5
Michiel Roos

Si vous avez déjà créé l’archive Zip (ou si vous souhaitez supprimer simplement .DS_Store après la création du Zip), tous les fichiers .DS_Store seront supprimés, quel que soit le chemin dans l’archive Zip:

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

La réponse de whaley est toujours la meilleure, car elle peut être aliasée et oubliée. Dans mon cas, j'ai créé le zip à partir de l'utilitaire d'archivage, puis j'ai réalisé que je devais les supprimer.

3
James Taylor

Je ne pense pas qu'il y ait moyen de le faire par défaut, mais je peux penser de deux manières pour atteindre ce que vous voulez.

Tout d'abord, j'ai trouvé une application gratuite appelée FolderWasher . Déposez le dossier sur l'application pour supprimer les fichiers .DS_Store et décompressez-le.

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

3
Delameko

Si vous exécutez ceci dans Terminal, cela les empêche de se générer automatiquement lorsque vous créez des dossiers, vous pouvez le réactiver si vous le souhaitez.

defaults write com.Apple.desktopservices DSDontWriteNetworkStores true

Vous pouvez ensuite utiliser l'exemple @Penang (ci-dessus) pour vérifier si les fichiers ne sont plus créés. Je devais télécharger un fichier Zip et chaque dossier contenait ce fichier, ce qui m'aidait.

2
Evan

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, lancez simplement:

defaults write com.Apple.Finder AppleShowAllFiles FALSE && killall Finder

Vous pouvez supprimer des fichiers .DS_Store comme n'importe quel autre fichier sans causer de dommages à 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 d'arrière-plan."

2
Penang

Utilisez CleanArchiver pour créer ces archives. De cette façon, vous n'avez pas besoin de jeter les préférences de votre dossier.

2
Daniel Beck

Il existe une explication de ce qu’ils sont et de la manière de les supprimer sur le site d’aide Adobe de tous les emplacements.

Il s’agit d’un fichier caché utilisé pour stocker la configuration d’un dossier (comme la position de l’icône, la couleur, l’arrière-plan du dossier et la position du défilement. Malheureusement, il semble qu’il n’existe aucun moyen de les empêcher de créer de manière permanente. Apple reconnaît toutefois qu’ils peuvent causer des problèmes. certains utilisateurs.

0
Trezoid