Я пытаюсь настроить сохраненный поиск на своем Mac, который будет исключать файлы в папке с именем «XYZ» из результатов поиска. Причина в том, что я получаю массу ложных срабатываний из этой папки, которые трудно разобрать.
Просто для ясности: я знаю, что вы можете добавлять папки в список «Конфиденциальность» в настройках Spotlight, но я не хочу добавлять эту папку в этот список, потому что я не хочу исключать ее из всех будущих поисков. , только этот конкретный сохраненный поиск. Любая идея, как что-то подобное можно сделать?
Я просмотрел некоторые из сохраненных файлов поиска в пакете приложений Finder и, например, /System/Library/CoreServices/Finder.app/Contents/Resources/MyLibraries/myDocuments.cannedSearch/search.savedSearch
использовал такой формат для исключения каталогов:
<key>FXScopeArrayOfPaths</key>
<array>
<string>~/</string>
<string>-Library</string>
<string>-Music/iTunes</string>
<string>-Documents/Steam Content</string>
<string>~/Library/Mobile Documents/</string>
<string>-com~apple~Keynote</string>
<string>-com~apple~Pages</string>
<string>-com~apple~Numbers</string>
</array>
Таким образом, вы можете исключить подпапки, добавив строки, начинающиеся с символа минус после полного пути. Что-то вроде -~/Library
не работает.
Вы можете редактировать сохраненные файлы Search, перетаскивая их в текстовый редактор. RawQueryDict:SearchScopes
и FXScope:FXScopeArrayOfPaths
кажется, что по умолчанию перечислены одни и те же пути, но простое редактирование второго, по-видимому, исключает папки, по крайней мере, в Finder.
~/Library/Saved Searches
в OSX 10.10.x.Если удерживать option
кнопку (+), чтобы добавить критерий поиска, он станет (…) и Any/All/None
блоком. Установите это значение None .
В качестве критериев выберите Document Container
. Его не будет в списке по умолчанию рядом с Name
, и т. д Kind
. Выберите, Other…
чтобы выбрать его из списка дополнительных критериев, если у него есть собственная функция поиска :
Установите это на имя папки, которую вы хотите исключить, используя все , что is/contains/begins with/ends with
вы считаете подходящим.
Конечный результат должен выглядеть примерно так:
Document Container
невозможно исключить папки: apple.stackexchange.com/questions/132860/… (у меня это не работает на 10.8.5)Я хочу добавить, что если «Контейнер документов» не работает для вас (например, моя проблема), вы можете настроить папку поиска для включения/выключения определенных папок.
Извините, у меня нет «представителей» для размещения изображений, поэтому я сделаю все возможное. Это мой первый пост, так что не стесняйтесь флеймить.
Для моего рабочего процесса организации музыки я хотел, чтобы папка iTunes скрывала ошибочные подпапки. Конечно, перемещение папок из папки iTunes было невозможным, поскольку это сломало бы / взбесило iTunes и заставило бы воссоздать те же самые папки. Вот как я добился этого, изменив описанный выше метод Лейка:
Kind
> is
>Folder
option
и (+), выберите Any
of the following are true
(это для папок с согласием). Чтобы отказаться от папок, как упоминалось выше, измените «Любой» на «Нет».Any
опцией, которая выглядела так (например, используются фактические имена папок):
Name
is
«Автоматически добавлять в iTunes»
Name
is
«Музыка»
Name
is
«МУЗЫКА ДЛЯ ДОБАВЛЕНИЯ — ГЛАВНАЯ ПАПКА»
Name
is
«Результаты TuneUp»
Name
is
«Тегирование MusicBrainz»
Таким образом, конечным результатом является то, что когда я нажимаю на интеллектуальный поиск (расположенный на боковой панели Finder для меня), я вижу только 5 папок, которые я хочу, не разрушая присущую структуру папок основной папки, в которой они находятся.
Я надеюсь, что это поможет.
В настоящее время я не думаю, что это можно сделать. Похоже, что Google находит довольно много людей, пытающихся сделать это, и ни у кого нет реального ответа (кроме исключения конфиденциальности) :(
В поисковике при поиске файлов их можно исключить, добавив минус перед критериями. Например, я хочу найти все файлы, которые не являются файлами PDF, я могу написать «Вид -pdf». Кажется, это работает для меня.
Я почти уверен, что нашел другой способ сделать это.
При настройке смарт-папки используйте атрибут поиска Raw Query. По умолчанию его нет в раскрывающемся меню атрибута поиска, поэтому вам нужно будет найти его, щелкнув «Другое» в нижней части раскрывающегося меню.
В поле ввода рядом с необработанным запросом введите:
kMDItemPath != "/Users/yourname/Documents/foldertoexclude"
в котором текст в кавычках — это путь к папке, которую нужно исключить, которую можно найти через Get Info.
Основываясь на ответе @Lri, я написал рабочий процесс Automator с приведенным ниже скриптом Apple. Не очень тонкий и еще многое предстоит раскрыть (например, относительные пути к папке поиска), но это работает как базовая концепция.
set savedSearch to path/to/.savedSearch
set exPath to (POSIX path of ((choose folder with prompt "Directory to exclude") as alias)) as text
set userPath to (POSIX path of (path to home folder as alias)) as text
set xmlExclude to "-" & (characters 1 thru -2 of findAndReplaceInText(exPath, userPath, ""))
set cmd to "/usr/bin/plutil -insert SearchCriteria.FXScopeArrayOfPaths.1 -string " & quoted form of xmlExclude & " " & quoted form of savedSearch
do shell script cmd
on findAndReplaceInText(theText, theSearchString, theReplacementString)
set AppleScript's text item delimiters to theSearchString
set theTextItems to every text item of theText
set AppleScript's text item delimiters to theReplacementString
set theText to theTextItems as string
set AppleScript's text item delimiters to ""
return theText
end findAndReplaceInText
on split(theString, theDelimiter)
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to theDelimiter
set theArray to every text item of theString
set AppleScript's text item delimiters to oldDelimiters
return theArray
end split
Я тоже страдал от той же проблемы и нашел способ сделать это.
Перейдите в «Система настроек» > «Spotlight» > «Выбрать», затем выберите вкладку «Конфиденциальность», и вы можете добавить определенные местоположения, чтобы исключить их из поиска Spotlight.
Я пробовал, работает.
Цезий
пользователь1457323