Я пытаюсь найти тип пантомимы файла. Я использовал или 'файл - тип пантомимы' или 'xdg-пантомиму', но получите различные ответы? Я не, несомненно, пойму?
$ file --mime-type -b gePlugin.kmz
application/zip
$ xdg-mime query filetype gePlugin.kmz
application/vnd.google-earth.kmz
Почему у меня есть различные ответы? На какой я должен полагаться?
Почему там различие?
Спасибо!
ОБНОВЛЕНИЕ (cipricus):
Пример для файла ISO:
file --mime-type -b MY_ISO.iso
дает application/x-iso9660-image
, который не полезен с файлом на рабочем столе для действий контекстного меню.
xdg-mime query filetype MY_ISO.iso
дает model/x.stl-binary
, который работает с te тот же рабочий стол для действий контекстного меню.
@jdpipe, кажется, корректен относительно поведения xdg-mime
и file
. There является другой утилитой mimetype
это ведет себя так же к xdg-mime
.
До которой утилиты "доверять", обычно хорошо просто использовать mimetype
или xdg-mime
. However, если Вы обеспокоены, что файл может иметь неправильное расширение, используют file
потому что это исследует содержание файла прежде, чем сообщить о его типе. , Например, если a png
переименован как jpg
, file
правильно отчеты "image/png", но xdg-mime
и mimetype
оба неправильно сообщают о "image/jpeg".
Как отмечено @db429, кажется, что обе утилиты корректны для kmz
файл Вы цитируете. Google Earth создает kmz
файлы, которые также переименованы zip
файлы. то, Что Вы хотите сделать с информацией, определяет который приложение использовать. , Если Вы хотите извлечь содержание, затем file
говорит Вам идти вперед и использовать unzip
. If Вы хотите просмотреть и использовать информацию, как первоначально предназначено, Google Earth использования или другую программу, способную к использованию kmz
файлы.
Относительно iso
файл, я не знаю почему xdg-mime
говорит Вам model/x.stl-binary
. On мой компьютер, сообщает это application/x-cd-image
. Also, с помощью file
без --mime-type
флаг сообщает дополнительную информацию, которая подтверждает, что это - некоторый тип образа диска. , Возможно, было бы полезно обновить базу данных пантомимы:
sudo update-mime-database /usr/share/mime
Короткий веб-поиск с google earth file format
дал xdg-пантомиму ответа, имеет более точный ответ, все же 'z', скорее всего, обозначает 'заархивированный' формат файла, поэтому сначала верно также.
xdg-mime
утилита от xdg-utils
более всесторонняя программа, которая принимает во внимание Вашу настольную среду (GNOME и родственники или KDE). В некоторых случаях это звонит file
утилита, но в других случаях это ищет mimetype базу данных для Вашей конкретной системы.
file
утилита, насколько я могу сказать, только смотрит в Вашем файле, она не смотрит на имя файла. Следовательно .kmz
файл, распознан как zip-файл. file
использует 'магические числа', которые связаны с конкретными типами файлов, например, волшебной строкой P5
в начале файла связан с изображениями PGM из библиотеки Netpbm.
mimetype база данных знает о высокоуровневых типах файлов, как определено использующих расширения файла, и может быть настроена пользователями. Когда новые программы установлены, mimetype база данных расширяется и даст ответы, которые, возможно, не были даны, прежде чем определенное программное обеспечение было установлено. К моему знанию того поведения не происходит с file
команда.
Если Вы хотите читать больше, xdg-mime
детали здесь - исходный код. Вы видите, что это звонит file
в некоторых случаях.
Насколько я могу телефон в 18,04 (больше здесь):
xdg-mime query filetype YOURFILE
тот, который надежен.
При необходимости в типе пантомимы, чтобы иметь действие контекстного меню с некоторым файловым менеджером как Наутилус или дельфин, посмотрите в том файловом менеджере под "Свойствами" файла.
У дельфина: