Как получить UTI файла из командной строки в Mac OS X?

24

Есть ли утилита командной строки, в которую я могу передать имя файла, который будет возвращать применимые UTI для этого файла?

Например:

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

может дать мне:

public.jpeg
public.image
public.data
smokris
источник

Ответы:

27

Вы можете использовать mdlsкоманду, чтобы найти UTI для файла:

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

и он даст вам кучу информации, в верхней части он скажет что-то вроде

kMDItemContentType             = "public.plain-text"

Надеюсь это поможет!

Wuffers
источник
3
Превосходно. Спасибо. mdls -name kMDItemContentTypeTree /Library/Desktop\ Pictures/Aqua\ Blue.jpgэто именно то, что я хотел.
Smokris
Пожалуйста, я рад, что это помогло.
Wuffers
1
Предположим, я выключил свой индекс Spotlight, и у меня, похоже, нет метаданных. (MDL независимо от файла просто говорит, что файл не был найден). Как сервисы md * генерируют типы контента в первую очередь?
Aurel Bílý
7

Команда mdls, похоже, работает только с индексированными файлами Spotlight. Если вы запустите его на смонтированном образе диска, компакт-диске или флэш-накопителе, он может вообще не вернуть никакой информации.

Когда вы разрабатываете плагин Quicklook, также полезно использовать следующую команду, чтобы увидеть, что QuickView UTI считает файлом, и какие плагины он использует для предварительного просмотра:

qlmanage -d 4 -p /path/to/file
Карстен
источник
Цитируемый сайт больше не доступен.
Рэндалл