Manchmal verwende ich ein externes Laufwerk mit macOS darauf. Dies steht in Verbindung mit meinem aktuellen internen Laufwerk, auf dem auch macOS ausgeführt wird.
Ich finde es ärgerlich, dass ich immer dann, wenn ich in einem der beiden Betriebssysteme nach etwas suche (z. B. einer Anwendung), Ergebnisse sowohl von meinem externen als auch von meinem internen Laufwerk erhalte. Ich bin jedoch nur daran interessiert, die Anwendung von dem Laufwerk auszuführen, von dem ich gebootet habe.
Ich habe versucht, dieses Problem auf meinem externen Laufwerk zu umgehen, indem ich eine Spotlight-Ausnahme für das interne Laufwerk erstellt habe. Dadurch wurde verhindert, dass Dateien und Apps von meinem internen Laufwerk angezeigt wurden. Dies hindert mich jedoch auch daran, nach Dateien auf meinem internen Laufwerk zu suchen, wenn ich von meinem internen Laufwerk gebootet werde! Das ist eindeutig etwas, was ich nicht will.
Es scheint, als ob die Spotlight-Ausschlüsse pro Laufwerk gelten, was in diesem Szenario nicht ideal ist.
Gibt es eine Möglichkeit, Spotlight dazu zu bringen, nur das Laufwerk zu indizieren, das gerade gebootet wird? Auf diese Weise erhalte ich beim Booten von meinem externen Laufwerk nur Ergebnisse vom externen Laufwerk und dasselbe vom internen Laufwerk.
Sie könnten ein Skript haben, das beim Start ausgeführt wird und die in diesem Beitrag https://apple.stackexchange.com/a/91759/183505 vorgeschlagene Technik verwendet
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 externem DriveB booten und Spotlight wieder aktivieren möchten, könnten Sie vielleicht Ihr Startskript ausführen lassen:
rm /Volumes/DriveB/.metadata_never_index
Der verlinkte Beitrag listet auch andere Möglichkeiten auf, die Spotlight-Ausschlüsse programmatisch zu ändern.
Hier sind einige Möglichkeiten, ein Skript hinzuzufügen, das bei der Anmeldung gestartet wird: https://stackoverflow.com/questions/6442364/running-script-upon-login-mac
Viel Glück!
Erstellen Sie zunächst ein Startskript. Ich habe mich entschieden, eine zu erstellen~/script.sh
Stellen Sie sicher, dass es ausführbar istchmod +x ~/script.sh
Skript für Betriebssystem, das ein Laufwerk vor dem Rampenlicht verbergen möchte
#!/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
Ich habe heute gelernt, dass Sie ein sudo touch /.metadata_never_index_unless_rootfs
im Stammverzeichnis jedes Laufwerks verwenden können, um Indizes von OS X-Startlaufwerken zu trennen. Es ist eine spezielle Version von .metadata-never-index
, weil es das Laufwerk (neu) indiziert, wenn Sie davon booten, aber nicht, wenn Sie es nicht tun.
Ich verwende den mdutil
Befehl, um die Indizierung auf einem externen Laufwerk zu verhindern. Ich denke, das ist zuverlässiger.
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob auf dem externen Laufwerk die Indizierung aktiviert ist oder nicht:
$ mdutil -s /Volumes/<VolumeName>
Indexing enabled.
Um die Indizierung zu deaktivieren, führen Sie den Befehl aus (Benutzerkennwort erforderlich):
$ sudo mdutil -i off /Volumes/<VolumeName>
Indexing disabled.
Sie können den Indizierungsstatus mit dem ersten Befehl erneut überprüfen:
$ mdutil -s /Volumes/<VolumeName>
Indexing disabled.
-d
dem Befehl ( sudo mdutil -i off -d /Volumes/<VolumnName>
) hinzufügen, wird auch die Suche deaktiviert.Entschuldigung für die neue Antwort (nicht genug Vertreter, um einen Kommentar abzugeben, da ich neu hier bin)
@hapi - Ich bin vielleicht verwirrt, aber sind die Skripte falsch herum?
Skript für Betriebssystem, das ein Laufwerk vor dem Rampenlicht verbergen möchte: Umbenennungen.metadata_never_index
Skript auf dem Betriebssystem, das das Laufwerk indizieren möchte: erstellt.metadata_never_index
Ich dachte, das Vorhandensein von .metadata_never_index
auf dem Volume bedeutet, dass Spotlight es ignoriert hat?
Vielen Dank
.metadata_never_index
hat das keinerlei Auswirkungen auf macOS 10.13 - superuser.com/questions/591406/… ...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 , da es flexibler als Spotlight ist, auf dem externen Betriebssystem.
Oion Akif
Oion Akif
rm
Befehl erfordert, dass ich ihn mit ausführesudo
. Ich verwende die erste Methode in dem von Ihnen geposteten SO-Link. Hätten Sie dazu zufällig Vorschläge? Muss ich die Launch-Daemon-Methode verwenden, um dies zu überwinden?David Kerr
Benutzer3439894
DriveToHide
Leerzeichen vorhanden sind, schlagen Ihre derzeit geschriebenen Skripte fehl. Wenn Sie mit testen wollen,[ ... ]
dann doppelte Anführungszeichen der Variablen, um Kleckse und Wortaufteilung zu verhindern. Oder[[ ... ]]
zum Testen verwenden, dann sind doppelte Anführungszeichen nicht erforderlich.David Kerr
Benutzer3439894
Oion Akif