19 votes

Empêcher Spotlight d'indexer le lecteur externe

Parfois, j'utilise un disque externe avec MacOS dessus. C'est en conjonction avec mon disque interne actuel qui fonctionne également sous MacOS.

Je trouve ennuyeux que, chaque fois que je recherche quelque chose (comme une application) lorsque je suis dans l'un ou l'autre des systèmes d'exploitation et que le disque externe est connecté, j'obtienne des résultats provenant à la fois de mon disque externe et de mon ordinateur. y lecteur interne. Cependant, je ne souhaite exécuter l'application qu'à partir du disque sur lequel j'ai démarré.

J'ai essayé de contourner ce problème sur mon disque externe en créant une exception Spotlight pour le disque interne. Cela a empêché les fichiers et les applications de mon disque interne de s'afficher. Cependant Cela m'empêche également de rechercher des fichiers sur mon disque interne, lorsque je suis démarré à partir de ce dernier ! C'est clairement quelque chose que je ne veux pas.

Il semble que les exclusions Spotlight sont par lecteur, ce qui n'est pas idéal dans ce scénario.

Existe-t-il un moyen de faire en sorte que Spotlight n'indexe que le lecteur qui est actuellement en cours de démarrage ? De cette façon, lorsque je démarre à partir de mon disque externe, je n'obtiendrai des résultats que pour le disque externe, et de même pour le disque interne.

22voto

Rob Points 11

Vous pourriez avoir un script qui s'exécute au démarrage et qui utilise la technique suggérée dans ce post https://apple.stackexchange.com/a/91759/183505

Lorsque vous démarrez à partir du lecteur A (et que vous voulez désactiver l'indexation des projecteurs pour le lecteur externe B), vous pouvez exécuter :

touch /Volumes/DriveB/.metadata_never_index

Lorsque vous démarrez à partir du lecteur externe B et que vous voulez réactiver le projecteur, vous pourriez peut-être faire exécuter votre script de démarrage :

rm /Volumes/DriveB/.metadata_never_index

L'article lié énumère également d'autres moyens de modifier par programme les exclusions des projecteurs.

Voici quelques façons d'ajouter un script qui sera lancé à la connexion : https://stackoverflow.com/questions/6442364/running-script-upon-login-mac

Bonne chance !


Edit : Méthode utilisant bash scripts et fichiers plist


Créez d'abord un script de démarrage. J'ai choisi d'en créer un à ~/script.sh

Assurez-vous que c'est exécutable chmod +x ~/script.sh

script pour OS qui veut cacher un lecteur de spotlight

#!/bin/bash
flagLocation="/Volumes/DriveToHide"
flagRemoved=".ney_the_index"  # a new name

# if flag exists rename it.
if [ -a "$flagLocation/.metadata_never_index" ]; then 
    mv "$flagLocation/.metadata_never_index" "$flagLocation/$flagRemoved";
fi

script sur le système d'exploitation qui veut indexer le lecteur.

#!/bin/bash
flagLocation="/Volumes/DriveToHide"
flagRemoved=".ney_the_index"

if [ -a "$flagLocation/$flagRemoved" ]; then
    mv "$flagLocation/$flagRemoved" "$flagLocation/.metadata_never_index"
fi

if [ ! -a "$flagLocation/$flagRemoved" ] || [ ! -a "$flagLocation/.metadata_never_index" ] ; then
    touch "$flagLocation/.metadata_never_index"
fi

Créer un fichier plist ~/Library/LaunchAgents/com.user.loginscript.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.user.loginscript</string>
   <key>Program</key>
   <string>/Users/yourusername/script.sh</string>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>

Testez-le en le chargeant et en le déchargeant :

launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist

0 votes

Il semble que ce soit la meilleure façon de procéder. J'espérais quelque chose de plus "natif" d'une certaine manière, mais cela devrait être assez fiable. Je vous remercie.

0 votes

Je voudrais mentionner un problème auquel je suis confronté en essayant de mettre en œuvre cette méthode : la fonction rm exige que je l'exécute à l'aide de la commande sudo . J'utilise la première méthode dans le lien SO que vous avez posté. Auriez-vous des suggestions à faire à ce sujet ? Dois-je utiliser la méthode du démon de lancement pour résoudre ce problème ?

0 votes

J'ai mis à jour ma réponse en y ajoutant une solution un peu plus rustique.

20voto

sgon00 Points 1615

J'utilise mdutil pour empêcher l'indexation sur le disque externe, je pense que c'est plus fiable.

Pour vérifier si l'indexation du disque externe est activée ou non, exécutez la commande :

$ mdutil -s /Volumes/<VolumeName>

Indexing enabled. 

Pour désactiver l'indexation, exécutez la commande (nécessite le mot de passe de l'utilisateur) :

$ sudo mdutil -i off /Volumes/<VolumeName>

Indexing disabled.

Vous pouvez revérifier l'état de l'indexation avec la première commande à nouveau :

$ mdutil -s /Volumes/<VolumeName>

Indexing disabled.

1 votes

Si vous ajoutez -d à la commande ( sudo mdutil -i off -d /Volumes/<VolumnName> ), la recherche sera également désactivée.

1 votes

Ce changement est-il permanent ? Sera-t-il toujours efficace si je débranche et rebranche mon disque externe ?

0 votes

Cela a fonctionné pour moi, et a persisté après avoir démonté et remonté mon disque SSD externe.

9voto

Kappuchino Points 61

J'ai appris aujourd'hui que vous pouvez utiliser un sudo touch /.metadata_never_index_unless_rootfs dans le répertoire racine de chaque disque pour séparer les index des disques de démarrage OS X. Il s'agit d'une version spéciale de .metadata-never-index car il (ré)indexera le disque lorsque vous démarrez à partir de celui-ci, mais pas lorsque vous ne le faites pas.

2 votes

Cela semble être une bonne réponse à la question. Mais avez-vous une source pour cela ?

2 votes

2voto

stoutyhk Points 21

Toutes mes excuses pour cette nouvelle réponse (je n'ai pas assez d'expérience pour commenter, car je suis nouveau ici).

@hapi - Je suis peut-être confus, mais les scripts sont-ils dans le mauvais sens ?

script pour OS qui veut cacher un lecteur à partir de spotlight : renames .metadata_never_index

script sur l'OS qui veut indexer le lecteur : crée .metadata_never_index

Je pensais que la présence de .metadata_never_index sur le volume signifiait que Spotlight l'ignorait ?

Merci

1 votes

D'après mon expérience .metadata_never_index n'a aucun impact sur MacOS 10.13 - superuser.com/questions/591406/ ...

0 votes

Vous avez raison. Je pense que les scripts font le contraire de ce que dit la ligne descriptive au-dessus.

-4voto

Oion Akif Points 7185

L'autre réponse est une bonne méthode, mais elle peut causer des problèmes par inadvertance et ne pas être fiable à 100 %. Une meilleure méthode serait d'utiliser Alfred car il est plus souple que Spotlight, sur le système d'exploitation externe.

0 votes

Comment utiliseriez-vous Alfred à cette fin ?

0 votes

Bonne question. J'aimerais me rappeler comment. Je crois que je parlais de la façon dont vous pouvez exclure des dossiers de la recherche Alfred. sans de devoir utiliser la méthode d'exclusion suggérée dans l'autre réponse.

0 votes

Je suppose que je voulais dire que je rechercherais des fichiers avec Alfred plutôt qu'avec Spotlight. Rétrospectivement, cela semble être une réponse stupide à ma 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