Compresser des dossiers sur un mac, sans le .DS_Store

62

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 le 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?

Danixd
la source

Réponses:

106

Si cela ne vous dérange pas de sauter dans le terminal, c'est très facile. Si vous vous trouvez dans le /Users/usernamerépertoire $ HOME et qu’il existe un sous-répertoire nommé foo que vous souhaitez compresser mais qui ignore 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 mauvaise qualité n'est nécessaire, pas plus que vous n'avez besoin de supprimer vos fichiers .DS_Store - reposez-vous simplement sur la qualité des outils Unix intégrés à OSX / Darwin.

Whaley
la source
1
C'est parfait merci. Par intérêt, comment pourrais-je exclure les fins de chemins multiples? Quelque chose comme zip -r toto.zip toto -x "* .DS_Store, * .svn"?
danixd
5
Utilisez l'argument -x à deux reprises: zip -r foo.zip foo -x *.DS_Store -x *.svn*
whaley
Comment exclure les fichiers d'icônes créés par OSX pour les icônes de dossiers personnalisés? Ils ont une nouvelle ligne ou quelque chose comme ça à la fin du nom de fichier.
Daniel Beck
Je ne sais pas à quoi ressemblent ces noms de fichiers, je ne peux donc pas vous donner de véritable conseil.
Whaley
1
@Daniel Beck - continuez donc à utiliser CleanArchiver et ne détournez pas la section commentaire de la question de quelqu'un d'autre et acceptez de répondre à l'appel si la solution est inférieure quand cela fonctionne évidemment pour l'affiche originale? La réponse à votre question, étonnamment, est la suivante -x 'Icon?': Le "?" caractère dans un fichier globalement motif signifie "correspondre à un seul caractère générique", de sorte qu'il correspond indépendamment de ce que le "?" c'est vrai. Vous pouvez exclure n'importe quel type de fichier ad-hoc en ajoutant simplement plus d'arguments -x. zipest très flexible. Selon vous, qu'est-ce que ces utilitaires tiers utilisent vraiment en coulisse?
Whaley
5

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 aucune difficulté.

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.

Créer une application automator

Ajoutez l'étape ' obtenir les éléments de recherche sélectionnés '. Et ajoutez également une étape " exécuter un script shell " avec l' option " Pass input " définie sur "en tant qu'arguments ".

Ajouter des étapes de workflow

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.

Michiel Roos
la source
C'est bien! Comment puis-je le modifier pour que je puisse faire glisser plusieurs fichiers, le nom de sortie doit contenir dirname;
Unbreak
2
@unbreak je ne sais pas. Je ne possède plus de mac ;-)
Michiel Roos
3

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. Les fichiers .DS_Store seront supprimés et compressés.

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.

Delameko
la source
3

Si vous avez déjà créé l'archive zip (ou si vous souhaitez supprimer simplement le .DS_Store post-zip), tous les fichiers .DS_Store seront supprimés, quel que soit le chemin d'accès 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.

James Taylor
la source
2

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."

Penang
la source
2

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.

Daniel Beck
la source
2

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 et cela m'aidait.

Evan
la source
0

Il existe une explication de ce qu’ils sont et comment les supprimer sur le site d’aide Adobe de tous les lieux.

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 se créer définitivement. Apple reconnaît toutefois qu’ils peuvent causer des problèmes. certains utilisateurs.

Trezoid
la source