¿Búsqueda de Spotlight por ruta completa?

3

Al realizar una búsqueda en Spotlight, ya sea a través del Finder o mediante comandos de terminal, ¿es posible filtrar los resultados en función de la ruta completa de un archivo, o al menos el nombre de su carpeta principal?

La razón por la que necesito poder filtrar por la ruta completa es que aunque estoy buscando archivos reales, solo quiero devolver los archivos que se encuentran dentro de las carpetas que coinciden con un patrón en particular.

Por ejemplo, considera que tengo un montón de archivos estructurados de esta forma:

Jobs
    Foo Poster
        Preview.jpg
        Final.psd
    Bar Poster
        Preview.png
        Final.psd
    Foo Banner
        Preview.jpg
        Final.psd

Este es un pequeño ejemplo artificial para simplificar, pero considere ahora que quiero encontrar todas las imágenes de vista previa que se encuentran solo en las carpetas con "Póster" en el nombre.

Podría hacer esto con find usando algo como:

 find /path/to/Jobs -ipath *poster/preview*

Sin embargo, lo que realmente me gustaría es una forma de hacerlo utilizando Spotlight, no solo por la velocidad sino también por las opciones de búsqueda adicionales disponibles (etiquetas, tamaños de imagen, etc.).

¿Es posible hacer esto? Sé que puedo restringir las búsquedas a una sola carpeta, pero esto no sirve de nada, ya que lo que realmente necesito es encontrar carpetas que coincidan con un patrón y luego buscar en ellas los archivos reales.

Encontré la opción Contenedor de documentos en la GUI de búsqueda del Finder, pero esto no parece funcionar como esperaba; Parece que debería permitirme coincidir con la carpeta principal de un documento, pero este no parece ser el caso.

Suponiendo que esto no es posible con la GUI del Finder directamente (es decir, requiere un comando de terminal Spotlight), lo ideal sería poder crear una carpeta inteligente si es posible.

    
pregunta Haravikk 06.03.2018 - 13:22

1 respuesta

2

Esto no es posible con Spotlight solo. Spotlight no indexa la ruta del archivo como una propiedad del archivo. Por lo tanto, no es posible utilizar la ruta como criterio de búsqueda.

Puede usar mdfind en la línea de comandos para buscar en el índice de Spotlight. Con el parámetro -onlyin puede apuntarlo a la parte superior de la jerarquía de carpetas. Puede filtrar los resultados obtenidos utilizando grep.

mdfind -onlyin ~/Downloads/ 'kMDItemContentTypeTree == "public.image"cd' | grep '.*/test.*/.*'

Si necesita ayuda para crear la consulta de mdfind, eche un vistazo a HoudahSpot . Allí podrás configurar tus criterios de búsqueda. Luego ve a Ventana > Consulta en bruto para encontrar la cadena de consulta de Spotlight que puede usar con mdfind.

Mientras estés en HoudahSpot, también puedes usar su capacidad para filtrar resultados de búsqueda. Sobre los resultados de la búsqueda, encontrará un campo de búsqueda que permite filtrar / excluir por nombre / ruta. Aquí puede usar el asterisco como comodín.

Revelación completa: soy el desarrollador de HoudahSpot.

    
respondido por el Pierre Bernard 21.03.2018 - 12:30

Lea otras preguntas en las etiquetas