Je travaille sur Sierra 10.12.3 dans Automator.
Tout d’abord, j’ai réalisé cette version du script: elle fonctionne de la même manière que celle de freefly42, c’est une façon différente d’écrire la même chose.
Pour traduire pour des bashistes non natifs, il s’agit:
S'il est exécuté avec un argument de ligne de commande, il essaie de voir si l'argument est un répertoire et si ce répertoire contient un fichier nommé ".disable_osx_metadata".
Si le fichier spécial n'est pas là, rien ne se passe. Ce lecteur est ignoré.
Si le fichier spécial est là, le script supprime toutes les métadonnées osx et crée quelques nouveaux petits éléments qui empêchent toute autre chose. Par exemple, la création d'un fichier nommé .Trashes empêche le système d'exploitation de créer un répertoire nommé .Trashes, puis d'écrire des fichiers.
S'il est exécuté sans arguments, il s'exécute une fois pour chaque répertoire de / Volumes.
Donc, si vous l'exécutez manuellement ou cliquez dessus, il vérifie tous les lecteurs connectés. Si vous créez un flux de travail dans Automator, Automator l'exécute chaque fois qu'un lecteur est connecté, uniquement pour ce lecteur.
#!/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"
Enregistrez sous "disable_osx_metadata", chmod 755, copiez-le dans / usr / local / bin.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Puis ouvrez Automator, Nouveau, Action de dossier
Ensuite, j’ai trouvé que même dans Sierra 10.12.3, vous POUVEZ toujours ajouter le répertoire / Volumes dans Automator, d’une manière non évidente.
Allez dans le Finder, Fichier, "Aller au dossier ...", écrivez manuellement "/ Volumes" et appuyez sur Entrée.
Maintenant, cela vous montre une fenêtre avec vos disques durs et usb, mais aucun dossier "/ Volumes" évident sur lequel cliquer. Mais la barre de titre indique "/ Volumes" et elle apparaît également au bas.
Vous pouvez faire glisser l'icône de dossier à côté de "/ Volumes", de la barre de titre ou du bas vers l'Automator, et la déposer dans "L'action de dossier reçoit les fichiers et les dossiers ajoutés à: [______]".
Fermer le Finder.
Retour dans Automator: à gauche, faites défiler vers le bas et faites glisser "Obtenir le contenu du dossier" vers la droite et déposez-le.
Ensuite, à gauche à nouveau, faites défiler vers le bas et faites glisser "Run Shell Script" vers la droite et déposez-le ci-dessous "Obtenir le contenu du dossier".
Remplacez "Pass input:" par "comme arguments". Shell: [/ bin / bash] Passe l'entrée: [comme arguments]
Ensuite, faites glisser le script de / usr / local / bin dans la boîte de dialogue "Exécuter le script shell" afin qu'il indique "/ usr / local / bin / disable_osx_metadata".
Fichier, enregistrer, disable_osx_metadata.workflow
Pour référence, cela est enregistré dans:
/ Users / YOUR_NAME / Bibliothèque / Workflows / Applications / Actions sur les dossiers
Si vous enregistrez quelque chose de mal, je pense que vous devez y accéder manuellement dans le Finder pour le supprimer.
Enfin, pour chaque nouveau lecteur USB que vous souhaitez protéger, vous devez créer un fichier nommé ".disable_osx_metadata" dans le dossier racine.
Vous pouvez le faire dans Terminal: $ touch / Volumes / NO \ NAME / .disable_osx_metadata
Ou conservez simplement un petit fichier texte avec un nom visible (sans point) et copiez-le à la racine de tout nouveau lecteur USB, puis renommez-le .disable_osx_metadata après l'avoir copié.
Ce lecteur est maintenant nettoyé à chaque fois que vous l'attachez à partir de maintenant.
Pas aussi propre que je le voudrais. Il faut polluer un peu le disque pour que le système d'exploitation ne le pollue pas davantage. Il semble impossible de faire en sorte que le système d'exploitation le laisse simplement tranquille et n'ajoute aucun fichier que vous n'avez pas demandé.
TODO: Ajoutez des fonctions d'activation / désactivation pour créer / supprimer le fichier de points.
TODO: Cela n’empêche pas les fichiers .DS_Store de tous les répertoires.
TODO: Est-il possible de conditionner le script et le fichier foo.workflow afin qu'un utilisateur puisse ignorer la plupart de ces instructions manuelles? Je vois qu'il y a une option "export" dans Automator qui crée une sorte de fichier de package.
TODO: Peut-être obsolète tout ce post. Ce flux de travaux AppleScript + Automator pourrait être mieux:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104