Comment ajouter par programmation un dossier à Spotlight «ne pas indexer»?

17

Existe-t-il un moyen d'ajouter par programme un dossier à l'onglet "Confidentialité" de Spotlight? Soit via Terminal ou Applescript?

Souvent, je veux cliquer sur un élément dans les résultats de Spotlight dans le Finder et faire en sorte que le dossier de cet élément ne soit plus indexé.

J'ai trouvé que si vous

sudo defaults read /Volumes/foo/.Spotlight-V100/VolumeConfiguration.plist Exclusions

vous pouvez voir un tableau avec tous les éléments exclus.

Mais si vous essayez de

sudo defaults write  /Volumes/foo/.Spotlight-V100/VolumeConfiguration.plist Exclusions -array-add '/path/to/folder' 

il n'est PAS ajouté à l'onglet Confidentialité du panneau Préférences Spotlight, ni désindexé.

Dan
la source

Réponses:

17

Selon une réponse ici , un dossier peut être exclu de l'indexation Spotlight (obtenant le même effet que l'ajout à l'onglet Confidentialité, bien que le dossier n'y soit pas réellement répertorié) soit par

  • ajouter .noindexà la fin du nom du dossier, ou
  • créer un fichier vide .metadata_never_indexdans le dossier (par exemple avec touch folder/.metadata_never_index)

Vous devrez redémarrer le Finder après l'ajout .metadata_never_index, à killall Finderpartir du terminal ou de la déconnexion du menu Apple, puis vous reconnecter. Cette méthode ne fonctionne pas dans Mojave et versions ultérieures.

Ashley
la source
@ankii Vous avez ajouté "Cette méthode ne fonctionne pas dans Mojave et versions ultérieures". Est-ce que cela s'applique à la réponse entière, ou seulement au dernier paragraphe?
Ashley
Juste la méthode .meta_never_index. Voir une discussion ici: apple.stackexchange.com/questions/375396/… Je doute de High Sierra, mais Mojave l'ignore sûrement. Si vous souhaitez le modifier, mettez un espace avant Vous aurez besoin de .. et cela corrigera l'ambiguïté de la méthode à laquelle il s'applique.
ankii
Merci. Espérons que ces commentaires le documentent assez bien.
Ashley
2

Vous devez arrêter et démarrer le launchdservice appelé com.apple.metadata.mds. Donc après:

sudo defaults write /Volumes/foo/.Spotlight-V100/VolumeConfiguration.plist Exclusions -array-add '/path/to/folder'

faire:

sudo launchctl stop com.apple.metadata.mds && sudo launchctl start com.apple.metadata.mds
casr
la source
0

Vous devez d'abord modifier les paramètres d'autorisation pour ajouter quelque chose à l'onglet de confidentialité Spotlight sudo chown -R $USER:$GROUP /.Spotlight-V100/ sudo chmod -R 777 /.Spotlight-V100/

puis

sudo defaults write /.Spotlight-V100/Store-V1/Exclusions Exclusions -array-add devrait marcher.

Et n'oubliez pas de le remettre par la suite.

bluewoodtree
la source
1
Quand j'ai fait -array-addle dossier a été ajouté à la liste; cela n'a tout simplement pas eu d'effet. En d'autres termes, il est apparu avec defaults read, mais il ne s'est pas affiché dans le panneau Pref. Pensez-vous que ce mod d'autorisation ferait une différence?
Dan
Je ne suis pas sûr, mais les valeurs par défaut sont -rwx -------?
bluewoodtree
Désolé d'avoir mal compris, je pensais que cela ne serait pas ajouté du tout. Je ne suis pas sûr, mais les valeurs par défaut sont -rwx -------? Dans ce cas, vous avez peut-être raison et cela ne devrait faire aucune différence si vous l'avez changé -rwxrwxrwx avec chmod 777. Mais cela vaut la peine d'essayer!?
bluewoodtree
Je crois que Store-V1 n'est utilisé que par les anciennes versions de Mac OS X ... il est vide sur mes systèmes avec 10.9 Mavericks et versions ultérieures. Vous pouvez essayer de modifier la commande pour utiliser Store-V2 à la place.
Jim Grisham
-3

Vous pouvez également simplement accéder au panneau des préférences système pour Spotlight. Vous y trouverez un onglet de confidentialité. Ajoutez simplement les dossiers et fichiers que vous ne souhaitez pas afficher dans l'index. C'est ça. Ils l'ont déjà rendu facile, vous n'avez donc pas à utiliser la ligne de commande.

Et s'il est ajouté à l'onglet de confidentialité, vous pouvez voir tout ce que vous avez caché de l'index au cas où vous voudriez l'indexer plus tard.

masterninja01
la source
1
La question était de savoir comment procéder par programme. Évidemment, cela peut être fait via l'interface graphique.
Dan
1
@ Ze'ev: Un point valable ... mais la prochaine fois, puisque le faire par programme est si central à la question, vous devriez probablement inclure "par programme" dans le titre.
LarsH
@ Ze'ev: les détails de votre question ne correspondent pas à votre titre. Vous devez rendre votre titre clair et précis à la question
smci