31 votes

Comment programmer l'ajout d'un dossier à "ne pas indexer" dans Spotlight ?

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

Je souhaite souvent 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 découvert 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 de préférences Spotlight et n'est pas non plus désindexé.

25voto

Ashley Points 4027

Selon une réponse aquí un dossier peut être exclu de l'indexation Spotlight (ce qui a le même effet que de l'ajouter à l'onglet Confidentialité, bien que le dossier n'y soit pas répertorié) en procédant comme suit

  • en ajoutant .noindex à la fin du nom du dossier, ou
  • création d'un fichier vide .metadata_never_index à l'intérieur du dossier (par exemple avec touch folder/.metadata_never_index )

Vous devrez redémarrer le Finder après avoir ajouté .metadata_never_index soit killall Finder à partir de Terminal ou se déconnecter à partir du menu Apple, puis se reconnecter. Cette méthode ne fonctionne pas dans Mojave et les versions ultérieures.

1 votes

@ankii Vous avez ajouté "Cette méthode ne fonctionne pas dans Mojave et les versions ultérieures". Cela s'applique-t-il à l'ensemble de la réponse, ou seulement au dernier paragraphe ?

0 votes

Juste la méthode .meta_never_index. Voir la discussion ici : apple.stackexchange.com/questions/375396/ Je doute de High Sierra, mais Mojave ignore sûrement la même chose. Si vous voulez l'éditer, mettez un espace avant Vous aurez besoin et cela permettra de lever l'ambiguïté sur la méthode à laquelle elle s'applique.

0 votes

Merci. J'espère que ces commentaires le documentent suffisamment bien.

10voto

Le site VolumeConfiguration.plist a déménagé

Il réside désormais dans /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist .

Vous pouvez facilement le modifier en utilisant /uar/libexec/PlistBuddy

Lecture

sudo /usr/libexec/PlistBuddy -c "Print :Exclusions" /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist

Rédaction

Le zéro indique l'élément du tableau ou, dans ce cas, le début du tableau.

sudo /usr/libexec/PlistBuddy -c "Add :Exclusions:0 string '/path/to/folder'" /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist

Suppression de

Le zéro indique le premier élément du tableau.

sudo /usr/libexec/PlistBuddy -c "Delete :Exclusions:0 string" /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist

Redémarrer le démon

La solution la plus simple pour que le changement prenne effet est le redémarrage, mais vous pouvez aussi dire à Launchd pour redémarrer les mdworkers

sudo launchctl stop com.apple.metadata.mds
sudo launchctl start com.apple.metadata.mds

1 votes

Alors que le commandes vous avez posté faire comme indiqué, ils ne changent pas l'état actuel de Spotlight indexation et les entrées ajoutées n'apparaissent pas non plus dans Préférences du système > Spotlight > Vie privée . Donc, à moins que vous n'ayez un moyen de faire en sorte que les changements prennent effet, je ne suis pas sûr de la valeur de cette réponse.

0 votes

Vous devrez redémarrer bien sûr ou redémarrer le daemon

0 votes

Si vous rencontrez une erreur en exécutant ces commandes (par exemple, Error Reading File: ... ), vous devez probablement donner à votre programme de terminal un accès complet au disque (sous la rubrique System Preferences > Security & Privacy > Full Disk Access ).

6voto

user204439 Points 1

Vous devez arrêter et démarrer le launchd service 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

0voto

bluewoodtree Points 791

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

et ensuite

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

Et n'oubliez pas de le remettre en place après.

1 votes

Quand j'ai fait -array-add le dossier a été ajouté à la liste, mais ça n'a pas eu d'effet. En d'autres termes, il est apparu avec defaults read mais il ne s'est pas affiché dans le panneau des préférences. Pensez-vous que ce mod de permission pourrait faire une différence ?

0 votes

Je ne suis pas sûr, mais les valeurs par défaut sont -rwx------- ?

0 votes

Désolé d'avoir mal compris, je pensais qu'il 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 le faites modifier -rwxrwxrwx avec chmod 777. Mais cela vaut la peine d'essayer ?

-5voto

masterninja01 Points 201

Vous pouvez également vous rendre dans le volet des préférences système de Spotlight. Vous y trouverez un onglet de confidentialité. Il suffit d'ajouter les dossiers et les fichiers que vous ne voulez pas voir apparaître dans l'index. C'est tout. Ils ont déjà fait en sorte que vous n'ayez pas à utiliser la ligne de commande.

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

1 votes

La question était de savoir comment faire cela de manière programmatique. Il est évident que cela peut être fait via l'interface graphique.

1 votes

@Ze'ev : Un point valable... mais la prochaine fois, puisque le faire de manière programmatique est si central à la question, vous devriez probablement inclure "programmatiquement" dans le titre.

0 votes

@Ze'ev : les détails de votre question sont en désaccord avec votre titre. Vous devez rendre votre titre clair et précis par rapport à la question.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X