Ho ottenuto che funzioni su Sierra 10.12.3 in Automator.
Per prima cosa, ho realizzato questa versione dello script: funziona allo stesso modo di Freefly42, solo un modo diverso di scrivere la stessa cosa.
Per tradurre per i non madrelingua bash, ciò che fa è:
Se eseguito con un argomento da riga di comando, prova a vedere se l'argomento è una directory e se tale directory contiene un file denominato ".disable_osx_metadata".
Se il file speciale non è presente, non accade nulla. Quell'unità viene ignorata.
Se il file speciale è presente, lo script elimina tutti i metadati osx e crea alcuni piccoli nuovi elementi che impediscono qualsiasi altra cosa. Ad esempio, la creazione di un file denominato .Trashes impedisce al sistema operativo di creare una directory denominata .Trash e quindi di scrivere i file al suo interno.
Se eseguito senza argomenti, viene eseguito automaticamente una volta per ciascuna directory in / Volumes.
Quindi, se lo esegui manualmente o fai clic su di esso, controlla tutte le unità collegate. Se si crea un flusso di lavoro in Automator, Automator lo esegue ogni volta che un'unità è collegata, solo per tale unità.
#!/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"
Salva come "disable_osx_metadata", chmod 755, copia in / usr / local / bin.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Quindi apri Automatore, Nuovo, Azione cartella
Poi ho scoperto che anche in Sierra 10.12.3 puoi ancora aggiungere la directory / Volumes in Automator, in modo non ovvio.
Vai su Finder, File, "Vai alla cartella ...", scrivi manualmente in "/ Volumi" e premi Invio.
Ora questo ti mostra una finestra con le tue unità HD e USB, ma nessuna cartella "/ Volumes" ovvia su cui fare clic. Ma la barra del titolo dice "/ Volumes", e appare anche in fondo.
Puoi trascinare l'icona della cartella accanto a "/ Volumi", dalla barra del titolo o dal basso, sopra all'automatore e rilasciarla su "L'azione della cartella riceve file e cartelle aggiunti a: [______]"
Chiudi Finder.
Indietro in Automator: a sinistra, scorrere verso il basso e trascinare "Ottieni contenuto cartella" a destra e rilasciarlo.
Quindi di nuovo a sinistra, scorrere verso il basso e trascinare "Esegui script shell" a destra e rilasciarlo sotto "Ottieni contenuto cartella".
Modifica "Passa input:" in "come argomenti". Shell: [/ bin / bash] Input di input: [come argomenti]
Quindi trascina lo script da / usr / local / bin nella casella sotto "Esegui script shell" in modo che sia scritto "/ usr / local / bin / disable_osx_metadata"
File, salvataggio, disable_osx_metadata.workflow
Per riferimento, questo viene salvato in:
/ Users / YOUR_NAME / Library / Workflows / Applicazioni / Cartella Azioni
Se salvi qualcosa di sbagliato, penso che devi navigare manualmente lì nel Finder per eliminarlo.
Infine, per ogni nuova unità USB che si desidera proteggere, è necessario creare un file denominato ".disable_osx_metadata" nella cartella principale.
Puoi farlo nel Terminale: $ touch / Volumes / NO \ NAME / .disable_osx_metadata
O semplicemente tenere un piccolo file di testo in giro con un nome visibile (nessun punto iniziale) e copiarlo nella radice di qualsiasi nuova unità USB e rinominarlo .disable_osx_metadata dopo la copia.
Quell'unità ora viene pulita ogni volta che lo colleghi da ora in poi.
Non pulito come vorrei. Devi inquinare un po 'l'unità, per dire al sistema operativo di non inquinare di più. Sembra che non ci sia modo di lasciare semplicemente il sistema operativo da solo e di non aggiungere alcun file che non è stato richiesto.
TODO: Aggiungi abilita / disabilita le funzioni per creare / rimuovere il file dot.
TODO: Questo non impedisce i file .DS_Store in ogni directory.
TODO: È possibile impacchettare lo script e il file foo.workflow in modo che un utente possa saltare la maggior parte di queste istruzioni manuali? Vedo che in Automator esiste un'opzione di "esportazione" che crea una sorta di file di pacchetto.
TODO: Forse obsoleto l'intero post. Questo flusso di lavoro di applecript + automator potrebbe essere migliore:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104