Komprimieren von Ordnern auf einem Mac ohne den .DS_Store

63

Gibt es eine Möglichkeit, den .DS_Store beim Komprimieren eines Ordners auf einem Mac zu entfernen?

Ich arbeite auf einem Mac und sende Arbeit im Zip-Format an Kunden, werde aber immer über den darin enthaltenen Ordner .DS_Store befragt. Es scheint unvermeidlich zu sein, es sei denn, ich öffne den Ordner unter Windows, lösche den .DS_Store und komprimiere ihn dort. Es ist ein ziemlicher Aufwand.

Gibt es leichte Workarounds?

danixd
quelle

Antworten:

108

Wenn es Ihnen nichts ausmacht, zum Terminal zu springen, dann ist das verdammt einfach. Wenn Sie sich in /Users/usernameIhrem $ HOME-Verzeichnis befinden und es ein Unterverzeichnis mit dem Namen foo gibt, das Sie komprimieren, aber alle .DS_Store-Dateien ignorieren möchten, gehen Sie wie folgt vor:

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

Um dies zu interpretieren, führen wir die ausführbare ZIP-Datei mit den folgenden Parametern / Argumenten aus:

  • -r für das rekursive Einschließen aller Verzeichnisse unter den Zielen, die komprimiert werden sollen.
  • foo.zip ist der Name des Zip-Archivs, das wir erstellen
  • foo ist das Zielverzeichnis, das komprimiert werden soll
  • -x "*.DS_Store" schließt alle Dateien aus, deren Pfad mit der Zeichenfolge ".DS_Store" endet

Weder werden doofe Anwendungen von Drittanbietern benötigt, noch müssen Sie Ihre .DS_Store-Dateien in den Papierkorb werfen. Verlassen Sie sich einfach auf das Unix-Tool, das direkt in OSX / Darwin integriert ist.

Walfisch
quelle
1
Das ist perfekt, danke. Wie kann ich aus Gründen des Interesses Endungen mit mehreren Pfaden ausschließen? So etwas wie zip -r foo.zip foo -x "* .DS_Store, * .svn"?
Danixd
5
Verwenden Sie das Argument -x zweimal: zip -r foo.zip foo -x *.DS_Store -x *.svn*
whaley
Wie können Sie die von OSX für benutzerdefinierte Ordnersymbole erstellten Symboldateien ausschließen? Sie haben eine neue Zeile oder so etwas am Ende des Dateinamens.
Daniel Beck
Ich habe keine Ahnung, wie diese Dateinamen aussehen, daher kann ich hier keine wirkliche Anleitung geben.
Walfisch
1
@Daniel Beck - also weiterhin CleanArchiver verwenden und den Kommentarbereich einer fremden Frage und die akzeptierte Antwort nicht missbrauchen, um die Lösung als minderwertig zu bezeichnen, wenn sie offensichtlich für das Originalposter funktioniert? Die Antwort auf Ihre Frage lautet erstaunlicherweise -x 'Icon?'. Das "?" Zeichen in einem Globbing-Muster für eine Datei bedeutet "ein einzelnes Platzhalterzeichen zuordnen", es wird also unabhängig von dem "?" wirklich ist. Sie können Ad-hoc-Dateien jeglicher Art ausschließen, indem Sie einfach weitere -x-Argumente anhängen. zipist sehr flexibel. Was setzen diese Drittanbieter-Tools wohl wirklich hinter den Kulissen ein?
Walfisch
5

Sie können eine Automator-Anwendung erstellen, die einen Ordner als Eingabe akzeptiert und eine Zip-Datei des Ordnerinhalts ohne Cruft erstellt.

Speichern Sie diese Anwendung in / Users / you / Applications und ziehen Sie sie in Ihre Finder-Symbolleiste. Dann können Sie Ordner aus jedem Finder-Fenster auf die App ziehen.

Erstellen Sie eine Automator-Anwendung

Fügen Sie den Schritt " Ausgewählte Finder-Objekte abrufen " hinzu. Fügen Sie außerdem einen Schritt ' Shell-Skript ausführen ' hinzu, bei dem die Option ' Eingabe übergeben ' auf ' Als Argumente ' gesetzt ist.

Workflow-Schritte hinzufügen

Das Drehbuch:

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

Akzeptiert einen Ordner als Eingabe und erstellt eine Zip-Datei mit dem Namen des Ordners.

Michiel Roos
quelle
Es ist toll! Wie kann ich es so ändern, dass ich mehrere Dateien ziehen kann? Der Ausgabename sollte dirname enthalten.
Unbreak
2
@ Unbreak Ich weiß es nicht. Ich besitze keinen Mac mehr ;-)
Michiel Roos
3

Ich glaube nicht, dass es eine Möglichkeit gibt, dies standardmäßig zu tun, aber ich kann mir zwei Möglichkeiten vorstellen, um das zu erreichen, was Sie wollen.

Zunächst fand ich eine kostenlose App namens FolderWasher . Legen Sie den Ordner in der App ab, und die .DS_Store-Dateien werden entfernt und für Sie komprimiert.

Alternativ (und möglicherweise besser als Software von Drittanbietern) können Sie Automator verwenden, um das Archiv nach der Erstellung zu bereinigen. Es ist eigentlich schon eine Aktion dafür angelegt . Dies ist nur ein zusätzlicher Schritt, und Sie können die Aktion in den Finder ziehen, um sie leichter zu finden.

Delameko
quelle
3

Wenn Sie das ZIP-Archiv bereits erstellt haben (oder eine einfache Methode zum Entfernen von .DS_Store nach dem Erstellen der ZIP-Datei wünschen), werden alle .DS_Store-Dateien in einem beliebigen Pfad im ZIP-Archiv entfernt:

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

Die Antwort von whaley ist definitiv immer noch die beste, weil sie verzerrt und vergessen werden kann. In meinem Fall habe ich die ZIP-Datei mit dem Archivierungsdienstprogramm erstellt und dann festgestellt, dass ich diese löschen sollte.

James Taylor
quelle
2

Öffnen Sie das Terminal (/Applications/Utilies/Terminal.app) und führen Sie den folgenden Befehl aus, um versteckte Dateien anzuzeigen:

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

Um die versteckten Dateien auszublenden, führen Sie einfach Folgendes aus:

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

Sie können .DS_Store-Dateien wie alle anderen Dateien löschen, ohne Ihr Verzeichnis zu beschädigen. Wie in Wikipedia angegeben, ist "DS_Store (Desktop Services Store) eine versteckte Datei, die vom Mac OS X-Betriebssystem von Apple Inc. erstellt wurde, um benutzerdefinierte Attribute eines Ordners wie die Position von Symbolen oder die Auswahl eines Hintergrundbilds zu speichern."

Penang
quelle
2

Verwenden Sie CleanArchiver , um diese Archive zu erstellen. Auf diese Weise müssen Sie Ihre Ordnereinstellungen nicht in den Papierkorb werfen.

Daniel Beck
quelle
2

Wenn Sie dies in Terminal ausführen, werden sie beim Erstellen von Ordnern nicht mehr automatisch generiert. Sie können es bei Bedarf wieder aktivieren.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Sie können dann das @ Penang-Beispiel (oben) verwenden, um zu überprüfen, ob die Dateien nicht mehr erstellt werden. Ich musste eine Zip-Datei hochladen und in jedem Ordner war diese Datei enthalten, was mir geholfen hat.

Evan
quelle
0

Auf der Adobe-Hilfeseite für alle Bereiche finden Sie eine Erklärung zu den einzelnen Elementen und zum Löschen .

Sie sind eine versteckte Datei, in der die Konfiguration eines Ordners gespeichert wird (z. B. Symbolposition, Farbe, Ordnerhintergrund und Bildlaufposition). Leider scheint es keine Möglichkeit zu geben, ihre dauerhafte Erstellung zu verhindern, obwohl Apple zugibt, dass sie Probleme verursachen können einige Benutzer.

Trezoid
quelle