Как программно добавить папку в Spotlight «не индексировать»?

17

Есть ли способ программно добавить папку на вкладку «Конфиденциальность» 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 и не индексируется.

Дэн
источник

Ответы:

17

Согласно ответу здесь , папку можно исключить из индексации Spotlight (достигая того же эффекта, что и добавление ее на вкладку «Конфиденциальность», хотя на самом деле папка там не будет указана), либо

  • добавление .noindexв конец имени папки или
  • создание пустого файла .metadata_never_index внутри папки (например, с помощью touch folder/.metadata_never_index)

Вам нужно будет перезапустить Finder после добавления .metadata_never_index, либо killall Finderиз терминала, либо выйти из меню Apple, а затем снова войти в систему. Этот метод не работает в Mojave и более поздних версиях.

Ashley
источник
@ankii Вы добавили «Этот метод не работает в Мохаве и позже». Это относится ко всему ответу или только к последнему абзацу?
Эшли
Просто метод .meta_never_index. См. Некоторые обсуждения здесь: apple.stackexchange.com/questions/375396/… Я сомневаюсь в Высшей Сьерре, но Мохаве, несомненно, не знает об этом. Если вы хотите отредактировать его, поставьте пробел перед тем, как он вам понадобится ... и это исправит неоднозначность того, к какому методу он относится.
анки
Благодарю. Надеюсь, что эти комментарии достаточно хорошо это документируют.
Эшли
2

Вы должны остановить и запустить 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
CASR
источник
0

Сначала нужно изменить настройки разрешений, чтобы добавить что-то на вкладку конфиденциальности sudo chown -R $USER:$GROUP /.Spotlight-V100/ sudo chmod -R 777 /.Spotlight-V100/

а потом

sudo defaults write /.Spotlight-V100/Store-V1/Exclusions Exclusions -array-add должно сработать.

И не забудьте потом вернуть его обратно.

bluewoodtree
источник
1
Когда я это сделал, -array-addпапка была добавлена ​​в список; это просто не имело никакого эффекта. Другими словами, он появился с defaults read, но он не появился в Pref Panel. Как вы думаете, этот мод разрешений будет иметь значение?
Дан
Я не уверен, но по умолчанию -rwx -------?
bluewoodtree
Извините, что я неправильно понял, я думал, что это не будет добавлено вообще. Я не уверен, но по умолчанию -rwx -------? В этом случае вы можете быть правы, и это не должно иметь никакого значения, если вы изменили -rwxrwxrwx с помощью chmod 777. Но это стоит попробовать !?
bluewoodtree
Я считаю, что Store-V1 используется только в более старых версиях Mac OS X ... он пуст в моих системах с 10,9 Mavericks и более поздними версиями. Вы можете попробовать изменить команду для использования Store-V2.
Джим Гришам
-3

Вы также можете просто перейти на панель системных настроек для Spotlight. Там вы найдете вкладку конфиденциальности. Просто добавьте папки и файлы, которые вы не хотите показывать в индексе. Вот и все. Они уже сделали это проще, поэтому вам не нужно использовать командную строку.

И если он добавлен на вкладку конфиденциальности, вы можете увидеть, что все, что вы скрыли от индекса, на тот случай, если вы захотите проиндексировать его позже.

masterninja01
источник
1
Вопрос был о том, как это сделать программно. Очевидно, это можно сделать через графический интерфейс.
Дан
1
@ Ze'ev: верный момент ... но в следующий раз, так как выполнение этого программно занимает центральное место в вопросе, вы, вероятно, должны включить "программно" в заголовок.
LarsH
@ Ze'ev: детали вашего вопроса не совпадают с вашим названием. Вы должны сделать свой заголовок ясным и точным к вопросу
smci