41 votes

Empêcher Spotlight d'indexer les dossiers portant un certain nom

Existe-t-il un moyen d'ignorer globalement les dossiers portant un certain nom (par ex. node_modules )

Je sais que je peux le faire manuellement pour chaque instance, mais je me demandais s'il était possible d'indiquer à Spotlight de ne pas indexer ces dossiers ? node_modules par exemple, contient généralement des milliers de fichiers que je ne veux pas rechercher et cela finit par ralentir le projecteur.

J'ai cherché un peu partout mais je ne trouve que des réponses qui suggèrent d'ajouter manuellement des dossiers dans la liste de confidentialité de Spotlight. Est-ce que quelqu'un a une meilleure méthode, globale, pour le faire ?

30voto

mems Points 428

Il n'existe pas de méthode connue pour exclure de Spotlight un fichier ou un dossier sur la base d'un motif (ex. : son nom).

Il est toutefois possible d'exclure un dossier de Spotlight en y ajoutant un fichier vide. .metadata_never_index .

Vous pouvez utiliser cette méthode pour ignorer tous les node_module et bower_modules les dossiers :

find /path/to/projects -type d  -path '*node_modules/*' -prune -o -type d -name 'node_modules' -exec touch '{}/.metadata_never_index' \;

Edit :

Il semble que la méthode .metadata_never_index est ignoré par Spotlight depuis Mojave.


Edit 2 :

Comme l'a souligné @JohnLee, l'attribut étendu com.apple.metadata:com_apple_backup_excludeItem n'est pas lié / n'a pas d'impact sur Spotlight.

Cependant *.noindex et les liens symboliques ne sont pas indexés par mds (le backend de Spotlight). Vous pouvez l'utiliser comme un pansement :

# Rename all node_modules to node_modules.noindex and create a symlink node_modules -> node_modules.noindex
find /path/to/projects -type d \( -path '*node_modules/*' -o -path '*node_module.noindex/*' \) -prune -o -type d -name 'node_modules' -exec mv '{}' '{}.noindex' \; -exec ls -s '{}.noindex' '{}' \;

Remarque : si vous utilisez npm-ci le node_modules est "automatiquement supprimé avant que npm ci ne commence son installation".

6 votes

Je ne peux pas confirmer que cela fonctionne pour mon Mac avec Sierra à ce jour. J'ai exécuté le script et je peux trouver tous les fichiers cachés. .metadata_never_index dans mes node_modules, mais après un rafraîchissement forcé de l'index Spotlight, les fichiers sont toujours indexés. Il y a également un PR node_modules NPM Github ouvert, mais je crains que ce ne soit pas la solution finale au problème. github.com/npm/npm/issues/15346

0 votes

Remarque : Chrome et Opera l'utilisent pour le dossier de profil. Voir bugs.chromium.org/p/chromium/issues/detail?id=395300#c5

6 votes

Malheureusement, .metadata_never_index n'est pas honoré sur mojave.

14voto

HexInteractive Points 239

Au cas où quelqu'un aurait manqué fsb dans la question, comme je l'ai fait . Apple propose un onglet de confidentialité dans les paramètres de Spotlight.

Allez dans "Préférences système" > "Spotlight" > "Confidentialité" > "+" Ajouter des dossiers à la liste.

Note : Cela peut ne pas fonctionner immédiatement, j'ai dû redémarrer Spotlight pour voir les effets.

1 votes

Bonjour, je me demande comment redémarrer Spotlight ?

2voto

paws Points 141

Apparemment ajouter '.noindex' au nom d'un dossier parent empêchera Spotlight d'indexer.

NB : Je n'ai pas personnellement vérifié.

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