Impedir que o Spotlight indexe a unidade externa


9

Às vezes, uso um SSD externo com o macOS Sierra, em conjunto com minha unidade interna atual, que possui o macOS Sierra em execução.

Uma coisa irritante sobre o Spotlight é que sempre que procuro algo nele, por exemplo, quando estou executando a partir de minha unidade externa, obtém resultados da unidade externa e interna, o que é algo que eu não quero.

Quando inicializado na minha unidade externa, tentei criar uma exceção do Spotlight para a unidade interna. No entanto, parece que, se eu fizer isso, uma exceção será criada para a minha unidade interna, mesmo quando eu inicializá-la. Portanto, parece que as exclusões do Spotlight estão vinculadas pelo laptop, não pela unidade - o que significa que minha unidade interna será excluída dos resultados do Spotlight, independentemente da unidade externa da qual eu for inicializado.

É possível criar uma exceção do Spotlight para a minha unidade interna quando estou executando a partir da minha unidade externa e da mesma forma uma exceção para a minha unidade externa quando estou executando a partir da minha unidade interna?

Respostas:


14

Você pode ter um script executado na inicialização que emprega a técnica sugerida nesta publicação https://apple.stackexchange.com/a/91759/183505

Ao inicializar a partir do DriveA (quando você deseja desativar a indexação do Spotlight para o DriveB externo), você pode executar:

touch /Volumes/DriveB/.metadata_never_index

Ao inicializar a partir do DriveB externo e você deseja reativar o holofote, talvez seja possível executar o script de inicialização:

rm /Volumes/DriveB/.metadata_never_index

A postagem vinculada também lista outras maneiras de alterar programaticamente as exclusões de destaque.

Aqui estão algumas maneiras de adicionar um script que será iniciado no login: /programming/6442364/running-script-upon-login-mac

Boa sorte!


Edit: Método usando scripts bash e arquivos plist


Primeiro, crie um script de inicialização. Eu escolhi criar um em~/script.sh

Verifique se é executável chmod +x ~/script.sh

Script para SO que deseja ocultar uma unidade dos holofotes

#!/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 no sistema operacional que deseja indexar a unidade

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

Crie um arquivo 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>

Teste-o carregando e descarregando-o:

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

Parece que esta é a melhor maneira de fazê-lo. Eu esperava algo mais "nativo", mas isso deve ser bastante confiável. Obrigado.
— esqueleto da curva

Quero mencionar um problema que estou enfrentando ao tentar implementar isso: o rmcomando exige que eu o execute usando sudo. Estou usando o primeiro método no link SO que você postou. Você teria alguma sugestão para isso? Preciso usar o método daemon de inicialização para superar isso?
— esqueleto da curva

Atualizei minha resposta com uma solução ligeiramente hacky.
— hapi

2
Se DriveToHidehouver espaços, seus scripts , como atualmente escritos, falharão. Se você for fazer o teste com [ ... ]aspas duplas, as variáveis ​​devem ser evitadas para evitar que as palavras falhem. Ou use [[ ... ]]para testar, então não é necessário citar duas vezes.
— user3439894

Agradável! obrigado user3439894. Atualizei a resposta para refletir sua sugestão.
— hapi

2

Desculpas pela nova resposta (representante insuficiente para comentar, pois sou novo aqui)

@hapi - Posso estar confuso, mas os scripts são o contrário?

Script para SO que deseja ocultar uma unidade dos holofotes: renomeia .metadata_never_index

Script no sistema operacional que deseja indexar a unidade: cria .metadata_never_index

Eu pensei que a presença de .metadata_never_indexno volume significava que o Spotlight ignorou?

obrigado


Minha experiência é que .metadata_never_indexnão tem nenhum impacto no MacOS 10,13 - superuser.com/questions/591406/... ...
— Anon

2

Aprendi hoje que você pode usar um sudo touch /.metadata_never_index_unless_rootfs no diretório raiz de cada unidade para separar índices dos drives de inicialização do OS X. É uma versão especial do .metadata-never-index, porque (re) indexa a unidade quando você inicializa, mas não quando não o faz.


-2

Enquanto a outra resposta é um bom método para fazê-lo, pode causar problemas inadvertidamente e pode não ser 100% confiável. Um método melhor seria usar o Alfred , pois é mais flexível que o Spotlight, no sistema operacional externo.


Como você usaria Alfred para isso?
— Matt Sephton

Boa pergunta. Eu gostaria de lembrar como. Acredito que estava falando sobre como você pode excluir pastas da pesquisa Alfred sem precisar usar o método de exclusão sugerido na outra resposta.
— Skeleton Bow
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.