¿Cómo ubicar un archivo en Spotlight usando la carpeta y el nombre del archivo?

3

A menudo quiero navegar a un archivo o carpeta que no tiene un nombre único. En cambio, la carpeta principal en combinación con el nombre del archivo o carpeta lo hace único. Aquí hay algunos ejemplos:

  • Quiero abrir readme.txt en la carpeta llamada ABC en lugar de readme.txt en la carpeta llamada CDE o FGH .
  • Cada año, enseño un tema en el que las carpetas están organizadas subjectname/2011 , subjectname/2012 , etc. Quiero poder buscar subjectname 2012 porque 2012 no es único.

Cuando ingreso una parte de la ruta y el nombre de archivo en Spotlight, no se encuentra el archivo. Spotlight no parece tratar la información de ruta como relevante para la búsqueda.

  • ¿Cuál es una forma rápida de navegar a un archivo usando el foco cuando su nombre no es único pero conoce una palabra o una palabra parcial que aparece en su ruta?
  • Alternativamente, ¿hay otra estrategia para localizar rápidamente un archivo o carpeta por nombre y palabra en la ruta del archivo o carpeta?

Actualización, he leído que Spotlight trata la ruta de una manera especial . No se puede utilizar para construir búsquedas.

kMDItemPath
Complete path to the file. This value of this attribute can be retrieved, 
but can't be used in a query or to sort search results. This attribute can’t 
be used as a member of the valueListAttrs array parameter for MDQueryCreate 
or MDQueryCreateSubset.
Value Type:      CFString
Framework:       CoreServices/CoreServices.h
Header:      MDItem.h
Availability:    Available in OS X v10.4 and later.
    
pregunta Jeromy Anglim 08.11.2012 - 02:46

3 respuestas

2

Si se siente cómodo al abrir el terminal, puede ejecutar el comando

locate ABC/readme.txt

y le dará la ruta completa del archivo a cualquier archivo en su máquina que se llame readme.txt en una carpeta llamada ABC.

Mientras estés allí, puedes copiar y pasar la ruta como un argumento al comando open y se abrirá para ti.

Yendo un paso más allá, puede usar la salida de locate como los argumentos para open con xargs

locate ABC/readme.txt | xargs open

Abrirá todos los archivos que tengan ABC / readme.txt en tu máquina como si hubieras hecho doble clic en ellos.

    
respondido por el nine9ths 13.11.2012 - 05:57
1

Gracias a @ nine9ths por señalar el comando locate como una opción. Aquí hay algunas observaciones adicionales.

Coincidencia parcial y múltiples términos de búsqueda

A menudo tengo carpetas en las que solo puedo recordar parcialmente los nombres de los archivos y carpetas. Y las carpetas pueden no estar necesariamente en la carpeta principal inmediata (es decir, podría ser la principal de la carpeta principal). Una forma de realizar una búsqueda coincidente parcial de tipo booleano es combinar comandos grep canalizados. Por ejemplo:

locate AB | grep readme

canalizaría ( | ) todas las rutas que coincidan con AB en grep . Las rutas restantes también coincidirían con readme . Por lo tanto, esto coincidiría con ABC/foo/readme.txt , ABC/foo/readme.md y ABC/readme.txt .

Búsqueda sin distinción entre mayúsculas y minúsculas

La búsqueda de Spotlight parece no distinguir entre mayúsculas y minúsculas, lo que generalmente parece conveniente. Para el mismo comportamiento con locate y grep use el indicador -i .

locate -i AB | grep -i readme
Los comandos

grep pueden aplicarse repetidamente para filtrar aún más los resultados.

Seleccionar una ruta de una lista

En algunos casos, incluso después de varios vientos, encuentro que todavía puedo quedarme con un puñado de coincidencias y solo quiero seleccionar una de ellas de la lista. Hay varias formas de seleccionar una sola línea por número. Aquí hay un par de opciones para seleccionar, por ejemplo, la línea 4 de alguna lista de rutas desde un locate search

locate AB | grep readme | awk 'NR==4'

Abriendo una ruta seleccionada

Como @nineths observa una vez que se obtiene un solo archivo, la salida se puede abrir con una aplicación predeterminada:

locate foo | xargs open

o con un programa específico en la ruta, como Vim

locate foo | xargs mvim

xargs no funciona, al menos de forma predeterminada, si la ruta incluye un espacio. Otra opción es enviar la ruta al portapapeles y pegarla en algún lugar (por ejemplo, en una búsqueda Alfred o en el cuadro de diálogo Ir a la carpeta del Finder).

locate foo | pbcopy

Alternativa a la selección y apertura de la línea de comandos

Es de suponer que existen varias alternativas al uso de la línea de comandos para seleccionar y abrir una ruta de la lista de rutas devueltas.

  • En iTerm2, mantener presionada la tecla de comando y hacer clic en una URL o en una ruta de archivo / carpeta abrirá la URL o el archivo en la aplicación predeterminada.

Personalización de localizar

Este tutorial de Geek Stuff analiza varias personalizaciones del comando locate (por ejemplo, , filtrando ciertos directorios y tipos de archivos).

Posibilidad de usar mdfind en su lugar

En general, todos los ejemplos que utilizan la localización anterior podrían reemplazarse con mdfind . locate generalmente hace referencia a archivos de sistema adicionales, mientras que mdfind accede a los archivos indexados por Spotlight. mdfind no distingue entre mayúsculas y minúsculas por defecto, lo que generalmente considero conveniente. mdfind también tiene opciones de búsqueda adicionales, por ejemplo, puede agregar kind:fol para las carpetas. La principal diferencia es que mdfind solo busca el nombre del archivo. Por lo tanto, si la información de la ruta se está utilizando para limitar la búsqueda, debe aparecer en los filtros grep subsiguientes.

Por ejemplo, si quisiera encontrar una carpeta llamada 2012 donde subjectname aparezca en la ruta, lo siguiente funcionaría

mdfind name:2012 kind:fol | grep subjectname

Tenga en cuenta que name: parecía ser necesario porque el texto era todos los números.

Resumen de pensamientos

  • Velocidad : el comando locate se ejecuta más rápido que el comando find pero a una velocidad similar a mdfind .
  • Capacidad de filtrar : si tiene información para coincidir parcialmente con el nombre del archivo o si desea usar herramientas de búsqueda adicionales, mdfind parece mejor (suponiendo que el archivo esté indexado por Spotlight).

En general, todos estos enfoques parecen un poco complicados y tienen una gran cantidad de gastos generales sintácticos innecesarios.

    
respondido por el Jeromy Anglim 13.11.2012 - 08:56
1

Es posible que desee revisar Findspot . Findspot admite la búsqueda de ruta completa para que pueda incluir el nombre de la carpeta y el nombre de archivo en su consulta.

Aquí hay una captura de pantalla de Findspot usando tu ejemplo:

    
respondido por el Byron 11.11.2015 - 02:52

Lea otras preguntas en las etiquetas