Como obter a UTI de um arquivo na linha de comando no Mac OS X?

24

Existe um utilitário de linha de comando para o qual eu possa passar um nome de arquivo, que retornará UTIs aplicáveis ​​para esse arquivo?

Por exemplo:

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

pode me dar:

public.jpeg
public.image
public.data
smokris
fonte

Respostas:

27

Você pode usar o mdlscomando para encontrar a UTI de um arquivo:

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

e ele vai te dar um monte de informações, no topo vai dizer algo como

kMDItemContentType             = "public.plain-text"

Espero que isto ajude!

Wuffers
fonte
3
Excelente. Obrigado. mdls -name kMDItemContentTypeTree /Library/Desktop\ Pictures/Aqua\ Blue.jpgé exatamente o que eu queria.
smokris
De nada, estou feliz que isso tenha ajudado.
Wuffers
1
Suponha que eu desliguei meu índice do Spotlight e pareço não ter metadados armazenados. (mdls qualquer arquivo apenas diz que o arquivo não foi encontrado). Como os serviços md * geram os tipos de conteúdo em primeiro lugar?
Aurel Bílý
7

O comando mdls parece funcionar apenas em arquivos indexados do Spotlight. Se você executá-lo em uma imagem de disco montada, CD ou pen drive, ele pode não retornar nenhuma informação.

Ao desenvolver um plug-in do Quicklook, também é útil usar o comando a seguir para ver quais UTIs o Quicklook acha que um arquivo possui e quais plug-ins ele usa para a visualização:

qlmanage -d 4 -p /path/to/file
Karsten
fonte
O site citado não está mais disponível.
Randall