Mam to do pracy na Sierra 10.12.3 w Automatorze.
Najpierw stworzyłem tę wersję skryptu: działa tak samo jak freefly42, tylko inny sposób pisania tego samego.
Aby tłumaczyć dla nienatywnych mówców bash, robi to:
Jeśli jest uruchamiany z argumentem wiersza polecenia, próbuje sprawdzić, czy argument jest katalogiem i czy katalog ten zawiera plik o nazwie „.disable_osx_metadata”.
Jeśli pliku specjalnego nie ma, nic się nie dzieje. Ten dysk jest ignorowany.
Jeśli jest tam plik specjalny, skrypt usuwa wszystkie metadane osx i tworzy kilka małych nowych elementów, które uniemożliwiają cokolwiek innego. Na przykład utworzenie pliku o nazwie .Trashes uniemożliwia systemowi operacyjnemu utworzenie katalogu o nazwie .Trashes, a następnie zapisanie w nim plików.
Jeśli jest uruchamiany bez argumentów, uruchamia się sam dla każdego katalogu w / Volumes.
Więc jeśli uruchomisz go ręcznie lub klikniesz, sprawdzi wszystkie podłączone dyski. Jeśli utworzysz przepływ pracy w Automatorze, to Automator uruchamia go za każdym razem, gdy dysk jest podłączony, tylko dla tego dysku.
#!/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"
Zapisz jako „disable_osx_metadata”, chmod 755, skopiuj do / usr / local / bin.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Następnie otwórz Automator, New, Folder Action
Potem odkryłem, że nawet w Sierra 10.12.3 nadal możesz dodać katalog / Volumes w Automatorze, w sposób nieoczywisty.
Przejdź do Findera, Plik, „Idź do folderu ...”, ręcznie wpisz „/ Volumes” i naciśnij Enter.
Teraz pokazuje to okno z dyskami HD i USB, ale nie ma oczywistego folderu „/ Volumes” do kliknięcia. Ale pasek tytułowy mówi „/ Volumes” i pojawia się również na dole.
Możesz przeciągnąć ikonę folderu obok „/ Woluminy”, z paska tytułu lub z dołu, do Automatora i upuścić ją na „Akcja folderu odbiera pliki i foldery dodane do: [______]”
Zamknij Finder.
Z powrotem w Automatorze: po lewej stronie przewiń w dół i przeciągnij „Pobierz zawartość folderu” w prawo i upuść.
Następnie ponownie po lewej stronie przewiń w dół i przeciągnij „Uruchom skrypt powłoki” w prawo i upuść go poniżej „Pobierz zawartość folderu”.
Zmień „Przekaż dane wejściowe:” na „jako argumenty”. Shell: [/ bin / bash] Przekaż dane wejściowe: [jako argumenty]
Następnie przeciągnij skrypt z / usr / local / bin do pola pod „Run Shell Script”, aby brzmiał „/ usr / local / bin / disable_osx_metadata”
Plik, zapisz, wyłącz_osx_metadata.workflow
Dla porównania, zostanie to zapisane w:
/ Users / YOUR_NAME / Library / Workflows / Applications / Folder Actions
Jeśli zapisałeś coś źle, myślę, że musisz ręcznie nawigować tam w Finderze, aby go usunąć.
Na koniec, dla każdego nowego dysku USB, który chcesz chronić, musisz utworzyć plik o nazwie „.disable_osx_metadata” w folderze głównym.
Możesz to zrobić w terminalu: $ touch / Volumes / NO \ NAME / .disable_osx_metadata
Lub po prostu trzymaj mały plik tekstowy z widoczną nazwą (bez początkowej kropki) i skopiuj go do katalogu głównego dowolnego nowego dysku USB i zmień jego nazwę .disable_osx_metadata po skopiowaniu.
Ten dysk jest teraz czyszczony za każdym razem, gdy go podłączasz.
Nie tak czysty, jak bym chciał. Musisz trochę zanieczyścić dysk, aby powiedzieć systemowi operacyjnemu, aby nie zanieczyszczał go bardziej. Wydaje się, że nie ma sposobu, aby system operacyjny po prostu zostawił go w spokoju i nie dodawał plików, o które nie prosiłeś.
DO ZROBIENIA: Dodaj funkcje włączania / wyłączania, aby utworzyć / usunąć plik kropkowy.
DO ZROBIENIA: Nie zapobiega to plikom .DS_Store w każdym katalogu.
DO ZROBIENIA: Czy można spakować skrypt i plik foo.workflow, aby użytkownik mógł pominąć większość tych instrukcji? Widzę, że w Automatorze jest opcja „eksportowania”, która tworzy jakiś plik pakietu.
DO ZROBIENIA: Być może przestarzały cały ten post. Ten przepływ pracy automatyzatora AppleScript + może być lepszy:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104