Я отримав це для роботи над Sierra 10.12.3 в Automator.
По-перше, я створив цю версію сценарію: він функціонує так само, як і freefly42, просто інший спосіб написання тієї ж речі.
Для перекладу для немовних динаміків баш-класів це:
Якщо запустити аргумент командного рядка, він намагається перевірити, чи аргумент є каталогом, і чи містить цей файл файл з назвою ".disable_osx_metadata".
Якщо спеціального файлу немає, то нічого не відбувається. Цей привід ігнорується.
Якщо спеціальний файл є там, скрипт видаляє всі метадані osx та створює кілька невеликих нових елементів, що заважає нічого іншого. Наприклад, створення файлу з назвою .Trashes заважає ОС створити каталог з назвою .Trashes, а потім записати файли туди.
Якщо запустити без аргументів, він запускається один раз для кожного каталогу в / Томах.
Отже, якщо запустити його вручну або натиснути на нього, він перевіряє всі додані диски. Якщо ви створюєте робочий процес в Automator, то Automator запускає його щоразу, коли приєднаний диск, саме для цього диска.
#!/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"
Збережіть як "enable_osx_metadata", chmod 755, скопіюйте в / usr / local / bin.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Потім відкрийте Automator, New, Folder Action
Потім я виявив, що навіть в Sierra 10.12.3 ви все ще можете додати каталог / Volumes в Automator, неочевидним чином.
Перейдіть до Finder, File, "Go to Folder ...", вручну напишіть у "/ Volumes" та натисніть Enter.
Тепер це показує вам вікно з вашими HD та usb-накопичувачами, але жодної очевидної папки "/ Volumes" для натискання. Але на заголовку вказується "/ Томи", і він відображається внизу.
Ви можете перетягнути піктограму папки поруч із пунктом "/ Томи", або з рядка заголовка, або знизу, до Автоматизатора, і перетягнути його на "Дія папки отримує файли та папки, додані до: [______]"
Закрити Finder.
Назад до Автоматизатора: ліворуч прокрутіть вниз і перетягніть праворуч «Отримати вміст папок» та опустіть його.
Потім ліворуч прокрутіть вниз і перетягніть «Запустити скрипт оболонки» праворуч і опустіть його нижче «Отримати вміст папки».
Змініть "Передати введення:" на "як аргументи". Shell: [/ bin / bash] Передати введення: [як аргументи]
Потім перетягніть скрипт з / usr / local / bin у поле під заголовком "Запустити скрипт оболонки", щоб він написав "/ usr / local / bin / disabled_osx_metadata"
Файл, збереження, вимкнення_osx_metadata.workflow
Для довідки, це зберігається у:
/ Користувачі / YOUR_NAME / Бібліотека / Робочі процеси / Програми / Дії папок.
Якщо ви щось збережете не так, я думаю, що вам потрібно буде вручну переміститися там у Finder, щоб видалити його.
Нарешті, для кожного нового накопичувача USB, який ви хочете захистити, ви повинні створити файл з назвою ".disable_osx_metadata" у кореневій папці.
Ви можете це зробити в терміналі: $ touch / Томи / НІ \ ІМЕ / .disable_osx_metadata
Або просто збережіть невеликий текстовий файл навколо з видимим іменем (без провідної точки) та скопіюйте його у корінь будь-якого нового накопичувача usb та перейменуйте його .disable_osx_metadata після копіювання.
Цей привід зараз очищається щоразу, коли ви його приєднуєте відтепер.
Не так чисто, як хотілося б. Ви повинні трохи забруднити накопичувач, щоб сказати ОС не забруднювати його більше. Здається, немає можливості змусити ОС просто залишити її в спокої і не додавати файли, які ви не просили.
TODO: Додайте функції увімкнення / вимкнення для створення / видалення точкового файлу
TODO: Це не запобігає .DS_Store файлів у кожному каталозі.
TODO: Чи можливо упакувати сценарій та файл foo.workflow, щоб користувач міг пропустити більшість цих інструкцій? Я бачу, що в Автоматизаторі є опція "експорту", яка створює певний файл пакету.
TODO: Можливо, застаріла вся ця публікація. Цей робочий процес Applescript + автоматизатора може бути кращим:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104