Verhindern Sie, dass Spotlight ein externes Laufwerk indiziert


9

Ich verwende manchmal eine externe SSD mit MacOS Sierra in Verbindung mit meinem aktuellen internen Laufwerk, auf dem MacOS Sierra ausgeführt wird.

Eine ärgerliche Sache bei Spotlight ist, dass ich immer dann, wenn ich etwas darin suche, beispielsweise wenn ich von meinem externen Laufwerk aus laufe, Ergebnisse von meinem externen und internen Laufwerk erhalte , was ich nicht möchte.

Beim Booten in mein externes Laufwerk habe ich versucht, eine Spotlight-Ausnahme für das interne Laufwerk zu erstellen. Es scheint jedoch, dass in diesem Fall eine Ausnahme für mein internes Laufwerk erstellt wird, selbst wenn ich mein internes Laufwerk starte. Es scheint also, als ob die Spotlight-Ausschlüsse vom Laptop und nicht vom Laufwerk gebunden werden. Dies bedeutet, dass mein internes Laufwerk von den Spotlight-Ergebnissen ausgeschlossen wird, unabhängig davon, von welchem ​​externen Laufwerk ich hochfahre.

Ist es möglich, eine Spotlight-Ausnahme für mein internes Laufwerk zu erstellen, wenn ich von meinem externen Laufwerk aus laufe, und ebenfalls eine Ausnahme für mein externes Laufwerk, wenn ich von meinem internen Laufwerk aus laufe?

Antworten:


14

Möglicherweise wird beim Start ein Skript ausgeführt, das die in diesem Beitrag vorgeschlagene Technik verwendet: https://apple.stackexchange.com/a/91759/183505

Beim Booten von DriveA (wenn Sie die Spotlight-Indizierung für External DriveB deaktivieren möchten) können Sie Folgendes ausführen:

touch /Volumes/DriveB/.metadata_never_index

Wenn Sie von einem externen DriveB booten und Spotlight wieder aktivieren möchten, können Sie möglicherweise Ihr Startskript ausführen lassen:

rm /Volumes/DriveB/.metadata_never_index

Der verlinkte Beitrag listet auch andere Möglichkeiten auf, um die Spotlight-Ausschlüsse programmgesteuert zu ändern.

Hier sind einige Möglichkeiten, ein Skript hinzuzufügen, das beim Anmelden gestartet wird: /programming/6442364/running-script-upon-login-mac

Viel Glück!


Bearbeiten: Methode mit Bash-Skripten und Plist-Dateien


Erstellen Sie zuerst ein Startskript. Ich habe mich entschieden, eine bei zu erstellen~/script.sh

Stellen Sie sicher, dass es ausführbar ist chmod +x ~/script.sh

Skript für Betriebssysteme, die ein Laufwerk vor dem Scheinwerferlicht verbergen möchten

#!/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

Skript auf dem Betriebssystem, das das Laufwerk indizieren möchte

#!/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

Erstellen Sie eine Plist-Datei ~/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>

Testen Sie es, indem Sie es laden und entladen:

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

Dies scheint der beste Weg zu sein. Ich hatte in gewisser Weise auf etwas "Eingeboreneres" gehofft, aber das sollte ziemlich zuverlässig sein. Vielen Dank.
Skeleton Bow

Ich möchte ein Problem erwähnen, mit dem ich beim Versuch, dies zu implementieren, konfrontiert bin: Der rmBefehl erfordert, dass ich ihn mit ausführe sudo. Ich verwende die erste Methode in dem von Ihnen geposteten SO-Link. Hätten Sie zufällig Vorschläge dafür? Muss ich die Launch Daemon-Methode verwenden, um dies zu überwinden?
Skeleton Bow

Ich habe meine Antwort mit einer leicht hackigen Lösung aktualisiert.
Hapi

2
Wenn DriveToHideLeerzeichen vorhanden sind, schlagen Ihre Skripte , wie sie derzeit geschrieben wurden, fehl. Wenn Sie mit testen [ ... ]möchten, zitieren Sie die Variablen doppelt, um Blobbing und Wortteilung zu vermeiden. Oder verwenden Sie [[ ... ]]zum Testen, dann ist ein doppeltes Anführungszeichen nicht erforderlich.
user3439894

Nett! danke user3439894. Ich habe die Antwort aktualisiert, um Ihren Vorschlag widerzuspiegeln.
Hapi

2

Entschuldigung für die neue Antwort (nicht genug Vertreter, um zu kommentieren, da ich hier neu bin)

@hapi - Ich bin vielleicht verwirrt, aber sind die Skripte falsch herum?

Skript für Betriebssysteme, die ein Laufwerk vor Spotlight verbergen möchten: Umbenennen .metadata_never_index

Skript auf dem Betriebssystem, das das Laufwerk indizieren möchte: Erstellt .metadata_never_index

Ich dachte, das Vorhandensein von .metadata_never_indexauf der Lautstärke bedeutete, dass Spotlight es ignorierte?

Vielen Dank


Ich habe die Erfahrung gemacht, dass dies .metadata_never_indexkeinerlei Auswirkungen auf macOS 10.13 hat - superuser.com/questions/591406/… ...
Anon

2

Ich habe heute erfahren, dass Sie ein sudo touch /.metadata_never_index_unless_rootfs im Stammverzeichnis jedes Laufwerks verwenden können, um Indizes von OS X-Boot-Laufwerken zu trennen. Es handelt sich um eine spezielle Version von .metadata-never-index, da das Laufwerk beim Booten (neu) indiziert wird, jedoch nicht, wenn Sie dies nicht tun.


-2

Während die andere Antwort eine gute Methode ist, kann sie versehentlich Probleme verursachen und ist möglicherweise nicht 100% zuverlässig. Eine bessere Methode wäre die Verwendung von Alfred auf dem externen Betriebssystem, da es flexibler als Spotlight ist.


Wie würden Sie Alfred dafür verwenden?
Matt Sephton

Gute Frage. Ich wünschte, ich könnte mich daran erinnern, wie. Ich glaube, ich habe darüber gesprochen, wie Sie Ordner von der Alfred-Suche ausschließen können, ohne die in der anderen Antwort vorgeschlagene Ausschlussmethode verwenden zu müssen.
Skeleton Bow
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.