Tengo esto para trabajar en Sierra 10.12.3 en Automator.
Primero, hice esta versión del script: funciona de la misma manera que freefly42, solo una forma diferente de escribir lo mismo.
Para traducir para hablantes no nativos de bash, lo que hace es:
Si se ejecuta con un argumento de línea de comandos, intenta ver si el argumento es un directorio y si ese directorio contiene un archivo llamado ".disable_osx_metadata".
Si el archivo especial no está allí, entonces no pasa nada. Ese impulso es ignorado.
Si el archivo especial está allí, el script elimina todos los metadatos de osx y crea algunos nuevos elementos pequeños que evitan cualquier otra cosa. Por ejemplo, crear un archivo llamado .Trashes evita que el sistema operativo cree un directorio llamado .Trashes y luego escriba archivos allí.
Si se ejecuta sin argumentos, se ejecuta solo una vez para cada directorio en / Volumes.
Entonces, si lo ejecuta manualmente o hace clic en él, verifica todas las unidades conectadas. Si crea un flujo de trabajo en Automator, Automator lo ejecuta cada vez que se conecta una unidad, solo para esa unidad.
#!/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"
Guardar como "disable_osx_metadata", chmod 755, copiar a / usr / local / bin.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Luego abra Automator, Nuevo, Acción de carpeta
Luego descubrí que incluso en Sierra 10.12.3 todavía PUEDES agregar el directorio / Volumes en Automator, de una manera no obvia.
Vaya a Finder, File, "Ir a la carpeta ...", escriba manualmente "/ Volumes" y presione Enter.
Ahora esto le muestra una ventana con sus unidades HD y USB, pero no hay una carpeta "/ Volúmenes" obvia en la que hacer clic. Pero la barra de título dice "/ Volumes", y también aparece en la parte inferior.
Puede arrastrar el ícono de la carpeta al lado de "/ Volumes", ya sea desde la barra de título o desde la parte inferior, hasta el Automator, y soltarlo en "La acción de carpeta recibe archivos y carpetas agregados a: [______]"
Cerrar Finder
De vuelta en Automator: a la izquierda, desplácese hacia abajo y arrastre "Obtener contenido de la carpeta" a la derecha y suéltelo.
Luego, a la izquierda nuevamente, desplácese hacia abajo y arrastre "Ejecutar script de Shell" hacia la derecha y suéltelo debajo de "Obtener contenido de la carpeta".
Cambie "Pasar entrada:" a "como argumentos". Shell: [/ bin / bash] Pase de entrada: [como argumentos]
Luego arrastre el script desde / usr / local / bin al cuadro debajo de "Ejecutar script de Shell" para que diga "/ usr / local / bin / disable_osx_metadata"
Archivo, guardar, deshabilitar_osx_metadata.workflow
Como referencia, esto se guarda en:
/ Users / YOUR_NAME / Library / Workflows / Applications / Folder Actions
Si guarda algo incorrecto, creo que debe navegar manualmente allí en Finder para eliminarlo.
Finalmente, para cada nueva unidad usb que desee proteger, debe crear un archivo llamado ".disable_osx_metadata" en la carpeta raíz.
Puede hacerlo en la Terminal: $ touch / Volumes / NO \ NAME / .disable_osx_metadata
O simplemente mantenga un pequeño archivo de texto con un nombre visible (sin punto inicial) y cópielo en la raíz de cualquier unidad usb nueva y cámbiele el nombre .disable_osx_metadata después de copiar.
Esa unidad ahora se limpia cada vez que la conecta a partir de ahora.
No tan limpio como me gustaría. Debe contaminar un poco la unidad para indicarle al sistema operativo que no la contamine más. Parece que no hay forma de hacer que el sistema operativo simplemente lo deje solo y no agregue ningún archivo que no solicitó.
TODO: Agregue funciones de activación / desactivación para crear / eliminar el archivo de puntos.
TODO: Esto no evita los archivos .DS_Store en cada directorio.
TODO: ¿Es posible empaquetar el script y el archivo foo.workflow para que un usuario pueda omitir la mayoría de estas instrucciones manuales? Veo que hay una opción de "exportación" en Automator que crea algún tipo de archivo de paquete.
TODO: Posiblemente obsoleto toda esta publicación. Este flujo de trabajo de AppleScript + Automatizador podría ser mejor:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104