¿Cómo puedo crear una búsqueda guardada que excluya una carpeta específica de los resultados?

Estoy tratando de configurar una Búsqueda guardada de mi Mac que excluirá archivos en una carpeta llamada 'XYZ' de los resultados de búsqueda. El motivo es que recibo un montón de falsos positivos de esa carpeta que son difíciles de clasificar.

Para que quede claro, sé que puede agregar carpetas a una lista de "Privacidad" en las preferencias de Spotlight, pero no quiero agregar esta carpeta a esa lista, porque no quiero excluirla de todas las búsquedas futuras. , solo esta búsqueda guardada específica. ¿Alguna idea de cómo se podría hacer algo así?

Después de buscar en Google y jugar con mis propias búsquedas de prueba, no creo que esto se pueda hacer :(
Ese parece ser el consenso general. Gracias por tomarse el tiempo para investigarlo. Marcaré esta pregunta como completa si desea enviarla como respuesta.

Respuestas (8)

Miré algunos de los archivos de búsqueda guardados en el paquete de aplicaciones de Finder y, por ejemplo, /System/Library/CoreServices/Finder.app/Contents/Resources/MyLibraries/myDocuments.cannedSearch/search.savedSearchusé un formato como este para excluir directorios:

<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>

Por lo tanto, puede excluir subcarpetas agregando cadenas que comiencen con un carácter menos después de una ruta completa. Algo como -~/Libraryno parece funcionar.

Puede editar los archivos de búsqueda guardados soltándolos en un editor de texto. RawQueryDict:SearchScopesy FXScope:FXScopeArrayOfPathsparecen enumerar las mismas rutas de forma predeterminada, pero solo editar la segunda parecía excluir carpetas al menos en Finder.

Puede que hayas descubierto algo aquí. ¡Esto parece funcionar! Gracias por resolver esto. Me ha ahorrado un gran dolor de cabeza, y probablemente a muchos otros que encontrarán esta pregunta en el futuro.
Es una pena que no se pueda hacer sin editar XML, pero sí, muy bien encontrado :)
¿Alguien sabe si el nombre de una carpeta puede coincidir independientemente de la ruta? es decir. ignore la subcarpeta /nospotlight en cada carpeta principal, /folder1/nospotlight, /folder2/nospotlight....
Puedo confirmar que esto funciona editando archivos ~/Library/Saved Searchesen OSX 10.10.x
Ya no trabajo en Sierra

Si mantiene presionado optionel botón (+) para agregar un criterio de búsqueda, se convertirá en un (…) y un Any/All/Nonebloque. Establézcalo en Ninguno .

Para los criterios seleccione Document Container. No estará en la lista predeterminada junto con Name, Kind, etc. Seleccione Other…para seleccionarlo de una lista de criterios adicionales, siempre que tenga su propia función de búsqueda :Todos esos atributos

Establézcalo en el nombre de la carpeta que le gustaría excluir usando lo is/contains/begins with/ends withque considere adecuado.

El resultado final debería ser algo como esto:resultado

Esto funciona, y debería haber sido la respuesta seleccionada. :) Gracias.
Esto no me funciona en OSX 10.9.5
Acabo de registrarme en 10.10 [Yosemite] y parece que no ha cambiado. No tengo una máquina 10.9 [Mavericks] a mano para verificar en este momento, pero no recuerdo que falte. ¿Qué parte no te funciona?
Posible razón por la Document Containerque no se puede utilizar para excluir carpetas: apple.stackexchange.com/questions/132860/… (No funciona para mí en 10.8.5)
No trabaja para mí en Sierra.

Quiero agregar que si el "Contenedor de documentos" no funciona para usted (como es mi problema), puede configurar la Carpeta de búsqueda para activar o desactivar carpetas específicas.

Perdóneme, no tengo los "representantes" para publicar imágenes, así que haré lo mejor que pueda. Esta es mi primera publicación, así que siéntase libre de llamar la atención.

Para el flujo de trabajo de mi organización musical, quería que la carpeta de iTunes ocultara las subcarpetas erróneas. Por supuesto, mover carpetas fuera de la carpeta de iTunes no era una opción, ya que rompería/asustaría a iTunes para volver a crear esas mismas carpetas. Así es como logré esto modificando el método anterior de Lake:

  1. Navegue a la carpeta iTunes, en Finder Menu > Archivo > "Nueva carpeta inteligente"
  2. En los criterios de búsqueda iniciales, seleccione Kind> is>Folder
  3. Siguiendo el ejemplo de Lake, en el menú desplegable creado al mantener presionado optiony (+), seleccione Any of the following are true(esto es para optar por las carpetas) Para excluir las carpetas como Lake mencionó anteriormente, cambie "Cualquiera" a "Ninguno".
  4. Como estoy "optando por" las carpetas, anidé 5 criterios debajo de la Anyopción que se veía así (por ejemplo, se usan los nombres reales de las carpetas):

Name is"Agregar automáticamente a iTunes"
Name is"Música"
Name is"MÚSICA PARA AGREGAR - CARPETA PRINCIPAL"
Name is"Resultados de TuneUp"
Name is"Etiquetado de MusicBrainz"

Entonces, el resultado final es que cuando hago clic en la búsqueda inteligente (ubicada en la barra lateral del Finder para mí), solo veré las 5 carpetas que quiero sin destruir el diseño de carpeta inherente de la carpeta principal en la que residen.

Espero que esto ayude.

Bienvenido al sitio! Gracias por tomarse el tiempo para describir su solución en detalle. Si cree que una captura de pantalla ayudaría, cárguela en un sitio público para compartir (por ejemplo, Dropbox) y agregue un enlace a la respuesta o en los comentarios. Alguien con más reputación lo integrará en su respuesta.

Actualmente, no creo que esto se pueda hacer. Parece que hay bastantes personas que intentan hacer esto que Google encuentra y nadie tiene una respuesta real (aparte de la exclusión de privacidad) :(

En el buscador, cuando busca archivos, puede excluirlos agregando menos delante de los criterios. Por ejemplo, quiero buscar todos los archivos que no son archivos pdf, puedo escribir "Tipo es -pdf". Esto parece funcionar para mí.

Estoy bastante seguro de que he encontrado una manera diferente de hacer esto.

Al configurar la carpeta inteligente, utilice un atributo de búsqueda de consulta sin formato. De manera predeterminada, esto no se encuentra en el menú desplegable de atributos de búsqueda, por lo que deberá encontrarlo haciendo clic en Otro en la parte inferior del menú desplegable.

En el cuadro de entrada junto a Consulta sin procesar, escriba:

kMDItemPath != "/Users/yourname/Documents/foldertoexclude" 

en el que el texto entre comillas es el nombre de la ruta de la carpeta a excluir, que se puede encontrar a través de Obtener información.

Esto no me funciona en OSX 10.9.5
Realmente esperaba que esto funcionara, pero no me alegró. Los documentos dicen "[...] pero no se pueden usar en una consulta ni para ordenar los resultados de la búsqueda". ( developer.apple.com/library/mac/documentation/CoreServices/… ) por el motivo que sea, nunca lo sabremos

Basado en la respuesta de @Lri , escribí un flujo de trabajo de Automator con el script de Apple a continuación. No es muy sutil y aún queda mucho por desarrollar (por ejemplo, rutas relativas a la carpeta de búsqueda), pero funciona como un concepto básico.

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

Yo también sufría el mismo problema y encontré una manera de hacerlo.

Vaya a Sistema de preferencias > Spotlight > Seleccionar, luego seleccione la pestaña "Privacidad" y puede agregar ubicaciones específicas para excluir en la búsqueda de Spotlight.

Lo he intentado, funciona.

¿Te perdiste esta parte? "Para que quede claro, sé que puede agregar carpetas a una lista de "Privacidad" en las preferencias de Spotlight, pero no quiero agregar esta carpeta a esa lista, porque no quiero excluirla del futuro. búsquedas, solo esta búsqueda guardada específica.'