Есть ли способ программно добавить папку на вкладку «Конфиденциальность» Spotlight? Либо через терминал, либо через Applescript?
Часто я хочу щелкнуть элемент в результатах Spotlight в Finder, чтобы папка этого элемента больше не индексировалась.
Я обнаружил, что если вы
sudo defaults read /Volumes/foo/.Spotlight-V100/VolumeConfiguration.plist Exclusions
вы можете увидеть массив со всеми исключенными элементами.
Но если вы попытаетесь
sudo defaults write /Volumes/foo/.Spotlight-V100/VolumeConfiguration.plist Exclusions -array-add '/path/to/folder'
он НЕ добавляется на вкладку «Конфиденциальность» на панели настроек Spotlight и не деиндексируется.
Согласно ответу здесь , папка может быть исключена из индексации Spotlight (достижение того же эффекта, что и добавление ее на вкладку «Конфиденциальность», хотя папка фактически не будет там указана) либо
.noindex
в конец имени папки или.metadata_never_index
внутри папки (например, с помощью touch folder/.metadata_never_index
)Вам нужно будет перезапустить Finder после добавления .metadata_never_index
, либо killall Finder
из Терминала, либо выйдите из меню Apple, а затем снова войдите в систему. Этот метод не работает в Мохаве и более поздних версиях.
Вы должны остановить и запустить launchd
службу под названием com.apple.metadata.mds
. Так после:
sudo defaults write /Volumes/foo/.Spotlight-V100/VolumeConfiguration.plist Exclusions -array-add '/path/to/folder'
делать:
sudo launchctl stop com.apple.metadata.mds && sudo launchctl start com.apple.metadata.mds
VolumeConfiguration.plist
переехал _Теперь он находится в /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist
.
Вы можете легко редактировать его, используя/uar/libexec/PlistBuddy
sudo /usr/libexec/PlistBuddy -c "Print :Exclusions" /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist
Нуль указывает на элемент массива или, в данном случае, на начало массива.
sudo /usr/libexec/PlistBuddy -c "Add :Exclusions:0 string '/path/to/folder'" /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist
Ноль указывает на первый элемент в массиве
sudo /usr/libexec/PlistBuddy -c "Delete :Exclusions:0 string" /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist
Самое простое решение, чтобы изменения вступили в силу, — это перезагрузка, но вы также Launchd
можете перезапустить mdworkers.
sudo launchctl stop com.apple.metadata.mds
sudo launchctl start com.apple.metadata.mds
Однако, если вы решите отключить индексирование Spotlight для всего тома, например, если машина является машиной для сборки без головы, вы можете просто использовать mdutil
.
mdutil -i off /
Error Reading File: ...
), вам, вероятно, потребуется предоставить терминальной программе полный доступ к диску (в разделе System Preferences > Security & Privacy > Full Disk Access
).Сначала вам нужно изменить настройки разрешений, чтобы добавить что-то на вкладку конфиденциальности Spotlight.sudo chown -R $USER:$GROUP /.Spotlight-V100/
sudo chmod -R 777 /.Spotlight-V100/
а потом
sudo defaults write /.Spotlight-V100/Store-V1/Exclusions Exclusions -array-add
должно сработать.
И не забудьте установить его обратно после этого.
-array-add
, папка была добавлена в plist; просто не было никакого эффекта. Другими словами, он отображался с defaults read
, но НЕ отображался на панели Pref. Как вы думаете, этот мод разрешений будет иметь значение?Вы также можете просто перейти на панель системных настроек для Spotlight. Там вы найдете вкладку конфиденциальности. Просто добавьте папки и файлы, которые вы не хотите отображать в индексе. Вот и все. Они уже упростили это, поэтому вам не нужно использовать командную строку.
И если он добавлен на вкладку конфиденциальности, вы можете увидеть, что все, что вы скрыли из индекса, на тот случай, если вы захотите проиндексировать его позже.
Эшли
анки
Эшли
Оскар Лопес
.metadata_never_index
не работает в Мохаве, то как мы можем отключить индексирование всего тома? (не только один каталог)Эшли
Оскар Лопес
.metadata_never_index
было достаточно просто создать его в корне, он ведет себя как папка. Я не знаю, что теперь делать :-/Эшли