macOS: ZIP ohne ._DS_Store und __MACOSX packen

Wenn man unter macOS im Kontextmenü den Eintrag „komprimieren“ verwendet, werden dort standardmäßig ungewünschte Inhalte zusätzlich komprimiert.

Das bemerkt man jedoch nur auf Geräten mit einem anderen Dateisystem wie beispielsweise unter Windows. Dann sieht man dort oftmals noch die Datei ._DS_Store sowie das Verzeichnis __MACOSX. In meinem Fall machen diese Dateien jedoch bei einer Prüfung auf die Korrektheit der Inhalte Probleme, weshalb es mein Anliegen war, diese Dateien und Verzeichnisse nicht in meinen Archiven zu haben. Gleichzeitig wollte ich aber nicht auf den Komfort verzichten, eine ZIP-Datei per Kontextmenü zu erstellen.

Glücklicherweise kann man dies aber über den integrierten Automator lösen. Dieser erlaubt es, verschiedene Vorgänge in macOS zu automatisieren.

Um eine so genannte Schnellaktion hinzufügen zu können – so werden die Aktionen im Automator genannt, die über das Kontextmenü direkt aufgerufen werden können – muss der Automator zuerst gestartet werden und dann ein Klick auf den Button „Neues Dokument“ erfolgen. Hier hat man dann die Auswahl, welche Art das Dokument haben soll.

Zur Auswahl stehen:

  • Arbeitsablauf
  • Programm
  • Schnellaktion
  • Plug-In für Drucken
  • Ordneraktion
  • Kalendererinnerung
  • Plug-In für digitale Bilder
  • Diktierbefehl
Eine Art für das Dokument in Automator auswählen

In diesem Fall wird die Art „Schnellaktion“ benötigt.

Danach kann man im rechten Bereich einstellen, welche Daten diese Schnellaktion beim Start erhält. Dort wird bei Arbeitsablauf empfängt aktuelle(n) die Auswahl Dateien oder Ordner benötigt und nach in die Auswahl Finder. Der Rest ist für unsere Schnellaktion nicht relevant.

Das Ganze sollte dann so aussehen:

Auswahl der Daten für die Schnellaktion

Im linken Bereich kann nun über die Suche nach „Archiv erstellen“ gesucht werden. Der entsprechende Eintrag kann dann per Doppelklick der Schnellaktion hinzugefügt werden. Dort muss dann noch der Ort angepasst werden – und zwar zu Derselbe Name wie die Eingabe.

Der Automator sollte dann folgendermaßen aussehen:

Automator nach Archiv erstellen

Damit wird der Schnellaktion gesagt, dass die ausgewählte Datei(en) oder Ordner archiviert werden sollen. Das entspricht 1:1 dem Funktionsumfang des Komprimieren, wie es sich ebenfalls über das Kontextmenü starten lässt.

Um nun die ungewünschten Inhalte ._DS_Store sowie __MACOSX nicht mehr im Archiv vorzufinden, müssen diese wieder daraus entfernt werden. Das geht mit einem Shell-Skript, das auch als einzelne Aktion zur Schnellaktion hinzugefügt werden kann.

Das eigentliche Skript dabei muss dann dort eingefügt werden:

while read -r p; do
  zip -d "$p" __MACOSX/\* || true
  zip -d "$p" \*/.DS_Store || true
doneCode-Sprache: Bash (bash)

Danach sieht der Automator folgendermaßen aus:

Automator nach Shell-Skript ausführen

Die Schnellaktion kann nun per ⌘ + S gespeichert werden, in meinem Fall habe ich sie „ZIP Reloaded“ genannt. Sie ist dann im Kontextmenü in unterschiedlichen Bereichen vorzufinden. Wenn man noch keine oder wenige Einträge im Kontextmenü besitzt, dann wird sie direkt angezeigt. Bei mir ist das nicht der Fall, da ist sie im Bereich Schnellaktionen und im Bereich Dienste zu finden.

Kontextmenü Schnellaktionen > ZIP Reloaded

Wenn man nun immer diesen Eintrag zum packen verwendet statt dem original Komprimieren-Eintrag, erhält man ebenfalls eine ZIP-Datei aller markierten Dateien und/oder Ordner, aber ohne die ungewünschten Inhalte ._DS_Store sowie __MACOSX.

4 Kommentare zu “macOS: ZIP ohne ._DS_Store und __MACOSX packen

  1. Danke, das hilft mir sehr meine ganzen Windows-Kollegen nicht zu ärgern! 🙂

    Könnte man das auch noch mit einem Parameter für Passwort und Verschlüsselung erweitern? Wenn ja, wie sehe das dann aus?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert