Иногда я использую внешний диск с macOS. Это в сочетании с моим текущим внутренним диском, на котором также работает macOS.
Меня раздражает, что всякий раз, когда я ищу что-то (например, приложение), когда я нахожусь в любой ОС, когда подключен внешний диск, я получаю результаты как с внешнего, так и с внутреннего диска. Однако меня интересует только запуск приложения с диска, с которого я загрузился.
Я попытался обойти эту проблему на своем внешнем диске, создав исключение Spotlight для внутреннего диска. Это предотвратило отображение файлов и приложений с моего внутреннего диска. Однако это также не позволяет мне искать файлы на моем внутреннем диске, когда я загружаюсь с моего внутреннего диска! Ясно, что это то, чего я не хочу.
Кажется, что исключения Spotlight относятся к диску, что не идеально в этом сценарии.
Есть ли способ заставить Spotlight индексировать только тот диск, который загружен в данный момент? Таким образом, когда я загружаюсь с внешнего диска, я получаю результаты только с внешнего диска, и то же самое с внутренним диском.
У вас может быть сценарий, который запускается при запуске и использует технику, предложенную в этом сообщении https://apple.stackexchange.com/a/91759/183505 .
При загрузке с диска A (если вы хотите отключить индексацию Spotlight для внешнего диска B) вы можете выполнить:
touch /Volumes/DriveB/.metadata_never_index
Если вы загружаетесь с внешнего диска B и хотите снова включить прожектор, возможно, вы могли бы выполнить сценарий запуска:
rm /Volumes/DriveB/.metadata_never_index
В связанном посте также перечислены другие способы программного изменения исключений прожектора.
Вот несколько способов добавить скрипт, который будет запускаться при входе в систему: https://stackoverflow.com/questions/6442364/running-script-upon-login-mac
Удачи!
Сначала создайте сценарий запуска. Я решил создать один в~/script.sh
Убедитесь, что он исполняемыйchmod +x ~/script.sh
Скрипт для ОС, которая хочет скрыть диск от внимания
#!/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
Скрипт в ОС, который хочет проиндексировать диск
#!/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
Создайте 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>
Протестируйте его, загрузив и выгрузив его:
launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
Сегодня я узнал, что вы можете использовать a sudo touch /.metadata_never_index_unless_rootfs
в корневом каталоге каждого диска, чтобы отделить индексы от загрузочных дисков OS X. Это специальная версия .metadata-never-index
, потому что она будет (пере)индексировать диск, когда вы загружаетесь с него, но не когда вы этого не делаете.
Я использую mdutil
команду для предотвращения индексации на внешнем диске, я считаю, что это более надежно.
Чтобы проверить, включено ли индексирование на внешнем диске, выполните команду:
$ mdutil -s /Volumes/<VolumeName>
Indexing enabled.
Чтобы отключить индексирование, выполните команду (требуется пароль пользователя):
$ sudo mdutil -i off /Volumes/<VolumeName>
Indexing disabled.
Вы можете еще раз перепроверить статус индексации с помощью первой команды:
$ mdutil -s /Volumes/<VolumeName>
Indexing disabled.
-d
к команде ( sudo mdutil -i off -d /Volumes/<VolumnName>
), это также отключит поиск.Приносим извинения за новый ответ (недостаточно представителей для комментариев, так как я здесь новичок)
@hapi - я могу быть сбит с толку, но сценарии не так?
Скрипт для ОС, которая хочет скрыть диск от внимания: переименовывает.metadata_never_index
Скрипт в ОС, которая хочет проиндексировать диск: создает.metadata_never_index
Я думал, что наличие .metadata_never_index
на громкости означает, что Spotlight его проигнорировал?
Спасибо
.metadata_never_index
никак не влияет на macOS 10.13 — superuser.com/questions/591406/… ...В то время как другой ответ является хорошим способом сделать это, он может непреднамеренно вызвать проблемы и не может быть на 100% надежным. Лучшим методом было бы использовать Alfred , так как он более гибкий, чем Spotlight, на внешней ОС.
Оион Акиф
Оион Акиф
rm
команда требует, чтобы я запускал ее с помощьюsudo
. Я использую первый метод в ссылке SO, которую вы разместили. Может быть, у вас есть какие-нибудь предложения на этот счет? Нужно ли мне использовать метод запуска демона, чтобы преодолеть это?Дэвид Керр
пользователь3439894
DriveToHide
есть пробелы, то ваши сценарии в том виде, в каком они написаны в настоящее время, не сработают. Если вы собираетесь тестировать[ ... ]
переменные, сделайте двойные кавычки, чтобы предотвратить расщепление и разделение слов. Или используйте[[ ... ]]
для проверки, тогда двойные кавычки не нужны.Дэвид Керр
пользователь3439894
Оион Акиф