I ♥ Spotlight… y BibDesk. Y más en Leopard, por Juan de Dios Santander

spotlight250_love.jpgEstoy enamorado de Spotlight. I ♥ Spotlight!. Con diferencia, Spotlight es la tecnología incorporada en Tiger y disponible en Leopard que más echo de menos cuando me encuentro con cualquier otro ordenador. Y me fascina el hecho de que las aplicaciones crean plugins para poder buscar en su contenido.

En mi caso, llevo manejando toda la bibliografía de la tesis con BibDesk, el mejor programa gratuito que exista en plataforma alguna. (Papers es una alternativa genial de pago, pero aparte de no ser gratuita intenta parecerse demasiado a iTunes; además, me gustan las soluciones modulares, y prefiero la combinación BibDesk + Vista Previa + Skim.)

Como BibDesk crea índices Spotlight para todos tus artículos, puedes buscarlos desde cualquier parte (incluso un cuadro de diálogo de Abrir archivo)… y comprobar si tienes algún PDF para el cual aún no creaste una entrada.

Pero lo que ya me sulibeya (si reconoces la palabra, sé los años que ya no cumples 😉) es que Spotlight no está limitado a buscar términos que aparezcan en cualquier parte de un documento, sino que puedes usar el Finder para construir consultas complejas, como todos los documentos BibDesk que tengan un determinado autor y palabra clave… y en Leopard se añade la posiblidad de construir grupos lógicos, esto es, los artículos de tal y tal palabra clave, o bien los de tal autor, todos juntos.

Claro que para conseguir la máxima potencia a veces necesitas la línea de comandos, y para eso existen los comandos mdls (para listar los metadatos de uno o varios archivos), y mdfind, para encontrar los archivos que contienen todas las palabras que vayan a continuación, o bien, si usamos los códigos que se pueden obtener con mdls, podemos usar paréntesis para agrupar cláusulas, y los operadores && para el Y lógico, y || para el O lógico. Y podemos leer el contenido de los archivos .savedSearch para averiguar cómo escribir clásulas complejas.

Pero si queremos hacer una búsqueda simple, como aquellos archivos que tengan un determinado autor y una fecha anterior a una dada, y queremos hacerlo desde la línea de comandos, hay dos problemas: recordar los códigos ( kMDItemAuthors, net_sourceforge_bibdesk_publicationdate), y convertir la fecha al formato de segundos desde el 01/01/1904. También se pueden Sin embargo, en Leopard hay otra alternativa, gracias a la opción interprete.

Con esa opción, podemos escribir (en inglés), el mismo tipo de consulta que habríamos hecho en el menú Spotlight. Por ejemplo, los artículos BibDesk que contengan Ochsenbein y que consulté ayer mismo los podríamos haber buscado como Ochsenbein clase:BibDesk fecha:ayer. Si lo hubiese querido buscar con mdfind, habría tenido que escribir:

mdfind ‘(kMDItemKind = “BibDesk*”) && (kMDItemLastUsedDate >= $time.today(-1)) && (( * = “*Ochsenbein*”) || (kMDItemTextContent = “*Ochsenbein*”))’

Pero en Leopard, podríamos escribir:

mdfind -interpret Ochsenbein kind:BibDesk date:yesterday

Nótese que lo que sigue a -interpret es lo que habríamos escrito en el menú Spotlight… si el idioma de nuestro Mac OS X fuese inglés. Aún así, es muchísimo más fácil de recordar que las claves que hemos podido ver 😉

ps. Las funciones como $time.today(-1) y similares están documentadas en la página Spotlight Query Programming Guide > Query Expression Syntax. En concreto, una fecha textual se escribe como $time.iso (“yyyymmddThhmmss”), donde yyyy son las cuatro cifras del año, mm las dos cifras (comenzando por 0) del mes, dd las dos cifras del día. La parte que sigue a T (incluida) es optativa, pero si aparece, hh corresponden a la hora en formato de 24h, mm a los minutos, y ss a los segundos. Por ejemplo, la fecha y hora de la celebración de mi cumpleaños este año fue $time.iso(“20080523T213000”), pero si queremos sólo la fecha se puede escribir como $time.iso(“20080523”).

pps. Existe otra opción de mdfind, literal, que se usa si queremos buscar documentos que contengan alguna de las palabras clave de Spotlight, como kMDItemLastUsedDate, y no queremos que se interprete como una restricción al contenido de ese campo, sino que aparezca es cadena concreta. Así, después de haber leido esta página la búsqueda:

mdfind -literal kMDItemLastUsedDate

debe encontrar un archivo .webhistory con esta página, entre otras cosas.

Un artículo de Juan de Dios Santander en Memoria de Acceso Aleastorio

0 0 votos
Article Rating
Subscribe
Notify of
1 Comment
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
13 years ago

Hola,

tengo una duda y espero que me puedas ayudar (he seguido tu Post desde hace tiempo y no me queda duda que podras ayudarme)
Tengo un Macbook (comprado 2007) y venia con Tiger, ahora le eh actualizado con Leopard Snow. Me recuedo que cuando solo tenia Tiger y buscaba un archivo o lo que fuera con el Sportligh me buscaba inmediatamente todo lo recionado inclusive con las primeras iniciales que escribia. Ahora no pasa igual y aun peor, si busco un archivo en espeifico me dice que no lo encuentra. Un ejemplo muy claro es cuando busco la carpeta donde estan los usuarios de Skype, antes con solo escribir el Usuario me decia donde estaba la carpeta y ahora no lo hace. Ayer mismo hice una prueba guardando un archivo en el escritorio, le di buscar y nada. Lei en uns Post que podria reparar el Sportligh con Onix, y asi lo hice, pero nada sigue sin encontrar hasta lo mas sensillo. Que me recomeindas hacer?

gracias por tus comentarios

Luis

P.D bien por tu Web!!

1
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x