A veces uso una unidad externa con macOS. Esto es junto con mi unidad interna actual que también ejecuta macOS.
Me resulta molesto que, cada vez que busco algo (como una aplicación) cuando estoy en cualquiera de los sistemas operativos cuando la unidad externa está conectada, obtengo resultados tanto de mi unidad externa como de la interna. Sin embargo, solo estoy interesado en ejecutar la aplicación desde la unidad desde la que he arrancado.
Intenté eludir este problema mientras estaba en mi disco externo creando una excepción de Spotlight para el disco interno. Esto evitó que aparecieran archivos y aplicaciones de mi disco interno. Sin embargo , esto también me impide buscar archivos en mi disco interno, ¡cuando arranco desde mi disco interno! Claramente esto es algo que no quiero.
Parece que las exclusiones de Spotlight son por unidad, lo que no es ideal en este escenario.
¿Hay alguna manera de hacer que Spotlight indexe solo la unidad que está arrancada actualmente? De esta manera, cuando arranque desde mi disco externo, obtendré resultados solo desde el disco externo, y lo mismo con el disco interno.
Podría tener un script que se ejecute al inicio y emplee la técnica sugerida en esta publicación https://apple.stackexchange.com/a/91759/183505
Al arrancar desde la unidad A (cuando desea deshabilitar la indexación de Spotlight para la unidad externa B), puede ejecutar:
touch /Volumes/DriveB/.metadata_never_index
Al arrancar desde DriveB externo y desea volver a habilitar Spotlight, tal vez podría ejecutar su secuencia de comandos de inicio:
rm /Volumes/DriveB/.metadata_never_index
La publicación vinculada también enumera otras formas de modificar programáticamente las exclusiones de Spotlight.
Aquí hay algunas formas de agregar un script que se iniciará al iniciar sesión: https://stackoverflow.com/questions/6442364/running-script-upon-login-mac
¡Buena suerte!
Primero cree un script de inicio. Elegí crear uno en~/script.sh
Asegúrate de que sea ejecutablechmod +x ~/script.sh
Script para el sistema operativo que quiere ocultar una unidad 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 en el sistema operativo que quiere indexar la unidad
#!/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
Crear un archivo 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>
Pruébalo cargándolo y descargándolo:
launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
Aprendí hoy que puede usar un sudo touch /.metadata_never_index_unless_rootfs
en el directorio raíz de cada unidad para separar los índices de las unidades de arranque OS X. Es una versión especial de .metadata-never-index
, porque (re) indexará la unidad cuando arranque desde ella, pero no cuando no lo haga.
Uso mdutil
el comando para evitar la indexación en un disco externo, creo que es más confiable.
Para verificar si la unidad externa tiene la indexación habilitada o no, ejecute el comando:
$ mdutil -s /Volumes/<VolumeName>
Indexing enabled.
Para deshabilitar la indexación, ejecute el comando (requiere contraseña de usuario):
$ sudo mdutil -i off /Volumes/<VolumeName>
Indexing disabled.
Puede volver a verificar el estado de indexación con el primer comando nuevamente:
$ mdutil -s /Volumes/<VolumeName>
Indexing disabled.
-d
al comando ( sudo mdutil -i off -d /Volumes/<VolumnName>
), también deshabilitará la búsqueda.Disculpas por la nueva respuesta (no hay suficiente representante para comentar ya que soy nuevo aquí)
@hapi: puedo estar confundido, pero ¿los guiones están al revés?
Script para el sistema operativo que quiere ocultar una unidad de Spotlight: cambia el nombre.metadata_never_index
Script en el sistema operativo que desea indexar la unidad: crea.metadata_never_index
Pensé que la presencia de .metadata_never_index
en el volumen significaba que Spotlight lo ignoraba.
Gracias
.metadata_never_index
no tiene ningún impacto en macOS 10.13 - superuser.com/questions/591406/… ...Mientras que la otra respuesta es un buen método para hacerlo, puede causar problemas sin darse cuenta y puede no ser 100% confiable. Un mejor método sería usar Alfred , ya que es más flexible que Spotlight, en el sistema operativo externo.
Oión Akif
Oión Akif
rm
comando requiere que lo ejecute usandosudo
. Estoy usando el primer método en el enlace SO que publicaste. ¿Tendrías alguna sugerencia para eso? ¿Necesito usar el método Launch Daemon para superar esto?david kerr
usuario3439894
DriveToHide
tiene espacios, entonces sus scripts , tal como están escritos actualmente, fallarán. Si va a probar con[ ... ]
, entonces comillas dobles las variables para evitar que se borren y se dividan las palabras. O utilícelo[[ ... ]]
para probar, entonces las comillas dobles no son necesarias.david kerr
usuario3439894
Oión Akif