it-swarm.com.de

Komprimieren von Ordnern auf einem Mac ohne den .DS_Store

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?

62
danixd

Wenn es Ihnen nichts ausmacht, zum Terminal zu springen, dann ist das verdammt einfach. Wenn Sie sich in /Users/username, Ihrem $ HOME-Verzeichnis, befinden und es ein Unterverzeichnis mit dem Namen foo gibt, das Sie komprimieren möchten, aber alle .DS_Store-Dateien ignorieren, 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 zum rekursiven 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 in OSX/Darwin integriert ist.

105
whaley

Sie können eine Automator-Anwendung erstellen, die einen Ordner als Eingabe akzeptiert und eine Zip-Datei mit dem Ordnerinhalt 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.

Create an automator application

Add ' get selected Finder items' step. Fügen Sie außerdem den Schritt ' Shell-Skript ausführen' hinzu, bei dem die Option ' Eingabe übergeben' auf ' als Argument festgelegt ist'.

Add workflow steps

Das Drehbuch:

name=("[email protected]")
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.

5
Michiel Roos

Wenn Sie das Zip-Archiv bereits erstellt haben (oder eine einfache Methode zum Entfernen von .DS_Store nach der Zip-Erstellung 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.

3
James Taylor

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 tatsächlich bereits 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.

3
Delameko

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.

2
Evan

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

2
Penang

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

2
Daniel Beck

Auf der Adobe-Hilfeseite aller Orte wird erklärt, was sie sind und wie sie gelöscht werden können.

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.

0
Trezoid