Ich habe dies auf Sierra 10.12.3 in Automator arbeiten.
Zuerst habe ich diese Version des Skripts erstellt: Es funktioniert genauso wie das von freefly42, nur auf eine andere Art und Weise, dasselbe zu schreiben.
Um für Nicht-Muttersprachler zu übersetzen, ist Folgendes erforderlich:
Bei Ausführung mit einem Befehlszeilenargument wird versucht, festzustellen, ob das Argument ein Verzeichnis ist und ob dieses Verzeichnis eine Datei mit dem Namen ".disable_osx_metadata" enthält.
Wenn die spezielle Datei nicht vorhanden ist, geschieht nichts. Dieses Laufwerk wird ignoriert.
Wenn die spezielle Datei vorhanden ist, löscht das Skript alle osx-Metadaten und erstellt ein paar kleine neue Elemente, die alles andere verhindern. Das Erstellen einer Datei mit dem Namen .Trashes verhindert beispielsweise, dass das Betriebssystem ein Verzeichnis mit dem Namen .Trashes erstellt und dort Dateien schreibt.
Wenn es ohne Argumente ausgeführt wird, wird es für jedes Verzeichnis in / Volumes einmal ausgeführt.
Wenn Sie es also manuell ausführen oder darauf klicken, werden alle angeschlossenen Laufwerke überprüft. Wenn Sie einen Workflow in Automator erstellen, wird er von Automator immer ausgeführt, wenn ein Laufwerk angeschlossen ist, und zwar nur für dieses Laufwerk.
#!/bin/bash
x=.disable_osx_metadata
[[ "$1" ]] || exec find /Volumes -type d -maxdepth 1 -mindepth 1 -exec $0 {} \;
[[ -e "$1/$x" ]] || exit 0
mdutil -i off "$1"
rm -rf "$1"/.{,_.}{fseventsd,Spotlight-V*,Trashes}
mkdir "$1/.fseventsd"
touch "$1/.fseventsd/no_log" "$1/.Trashes" "$1/$x"
Speichern Sie es als "disable_osx_metadata", chmod 755, kopieren Sie es nach / usr / local / bin.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Öffnen Sie dann Automator, Neu, Ordneraktion
Dann stellte ich fest, dass Sie auch in Sierra 10.12.3 das Verzeichnis / Volumes in Automator auf nicht offensichtliche Weise hinzufügen KÖNNEN.
Gehen Sie zu Finder, File, "Go To Folder ...", schreiben Sie manuell in "/ Volumes" und drücken Sie die Eingabetaste.
Dies zeigt Ihnen ein Fenster mit Ihren HD- und USB-Laufwerken, aber keinen offensichtlichen "/ Volumes" -Ordner, auf den Sie klicken können. In der Titelleiste wird jedoch "/ Volumes" angezeigt, und es wird auch unten angezeigt.
Sie können das Ordnersymbol neben "/ Volumes" entweder von der Titelleiste oder von unten auf den Automator ziehen und dort ablegen auf "Ordneraktion empfängt Dateien und Ordner, die hinzugefügt wurden zu: [______]".
Finder schließen.
Zurück in Automator: Scrollen Sie links nach unten und ziehen Sie "Get Folder Contents" nach rechts und lassen Sie es fallen.
Scrollen Sie dann wieder links nach unten und ziehen Sie "Run Shell Script" nach rechts und lassen Sie es unter "Get Folder Contents" fallen.
Ändern Sie "Pass input:" in "as arguments". Shell: [/ bin / bash] Übergebene Eingabe: [als Argumente]
Ziehen Sie dann das Skript aus / usr / local / bin in das Feld unter "Shell-Skript ausführen", sodass "/ usr / local / bin / disable_osx_metadata" angezeigt wird.
Datei, speichern, deaktivieren_osx_metadata.workflow
Als Referenz wird dies gespeichert in:
/ Users / YOUR_NAME / Library / Workflows / Applications / Folder Actions
Wenn Sie etwas Falsches speichern, müssen Sie im Finder manuell dorthin navigieren, um es zu löschen.
Schließlich müssen Sie für jedes neue USB-Laufwerk, das Sie schützen möchten, eine Datei mit dem Namen ".disable_osx_metadata" im Stammordner erstellen.
Sie können dies im Terminal tun: $ touch / Volumes / NO \ NAME / .disable_osx_metadata
Oder belassen Sie einfach eine kleine Textdatei mit einem sichtbaren Namen (kein führender Punkt) und kopieren Sie sie in das Stammverzeichnis eines neuen USB-Laufwerks und benennen Sie sie nach dem Kopieren in .disable_osx_metadata um.
Dieses Laufwerk wird jetzt jedes Mal gereinigt, wenn Sie es von nun an anbringen.
Nicht so sauber wie ich möchte. Sie müssen das Laufwerk ein wenig verschmutzen, um das Betriebssystem anzuweisen, es nicht weiter zu verschmutzen. Es scheint keine Möglichkeit zu geben, das Betriebssystem einfach in Ruhe zu lassen und keine Dateien hinzuzufügen, nach denen Sie nicht gefragt haben.
TODO: Fügen Sie Aktivierungs- / Deaktivierungsfunktionen hinzu, um die Punktdatei zu erstellen / zu entfernen.
TODO: Dies verhindert nicht die .DS_Store-Dateien in jedem Verzeichnis.
TODO: Ist es möglich, das Skript und die Datei foo.workflow zu packen, damit ein Benutzer die meisten dieser manuellen Anweisungen überspringen kann? Ich sehe, dass es in Automator eine "Export" -Option gibt, die eine Art Paketdatei erstellt.
TODO: Möglicherweise diesen ganzen Beitrag überholt. Dieser Applescript + Automator-Workflow ist möglicherweise besser:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104