¿Cómo obtener la UTI de un archivo desde la línea de comandos en Mac OS X?

24

¿Existe una utilidad de línea de comando a la que pueda pasar un nombre de archivo, que devolverá las UTI aplicables para ese archivo?

Por ejemplo:

hypothetical-uti-fetcher /Library/Desktop\ Pictures/Aqua\ Blue.jpg

podría darme:

public.jpeg
public.image
public.data
smokris
fuente

Respuestas:

26

Puede usar el mdlscomando para encontrar la UTI para un archivo:

mdls /Library/Desktop\ Pictures/Aqua\ Blue.jpg

y te dará un montón de información, hacia la parte superior dirá algo como

kMDItemContentType             = "public.plain-text"

¡Espero que esto ayude!

Wuffers
fuente
3
Excelente. Gracias. mdls -name kMDItemContentTypeTree /Library/Desktop\ Pictures/Aqua\ Blue.jpgEs exactamente lo que quería.
smokris
De nada, me alegra que esto haya ayudado.
Wuffers
1
Supongamos que apago mi índice de Spotlight y parece que no tengo metadatos almacenados. (mdls whatever-file solo dice que no se encontró el archivo). ¿Cómo generan los servicios md * los tipos de contenido en primer lugar?
Aurel Bílý
7

El comando mdls solo parece funcionar en archivos indexados de Spotlight. Si lo ejecuta en una imagen de disco, CD o unidad de disco montado, es posible que no devuelva ninguna información.

Cuando desarrolle un complemento Quicklook, también es útil usar el siguiente comando para ver qué UTI Quicklook cree que tiene un archivo y qué complementos usa para la vista previa:

qlmanage -d 4 -p /path/to/file
Karsten
fuente
El sitio citado ya no está disponible.
Randall