Как заставить команду file использовать волшебный файл, сгенерированный командой update-mime-database - PullRequest
2 голосов
/ 06 февраля 2012

Я использую Ubuntu Server 11.10.

Моя проблема в том, что команда file обнаруживает файлы, которые должны были иметь тип video/mp2t mime, как application/octet-stream

Так что здесьвот что я сделал:

  1. Я убедился, что /usr/share/mime/packages/freedesktop.org.xml содержит правильное описание mp2t.

  2. Я выполнил команду update-mime-database, котораякроме всего прочего, создал новый магический файл: /usr/share/mime/magic.

  3. Я обнаружил, что при запуске file -v он говорит, что использует /etc/magic:/usr/share/misc/magic в качестве магических файлов.

  4. Итак, я сказал команде file использовать мой новый магический файл: file -m /usr/share/mime/magic MY_VIDEOFILE

Вот здесь и начинается проблема.При запуске команды file с моим новым магическим файлом я получаю следующий вывод:

/usr/share/mime/magic, 1: Warning: offset `MIME-Magic' invalid
/usr/share/mime/magic, 1: Warning: type `MIME-Magic' invalid
/usr/share/mime/magic, 2: Warning: offset `[90:application/docbook+xml]' invalid
/usr/share/mime/magic, 2: Warning: type `[90:application/docbook+xml]' invalid
  .
  . (921 lines removed from the output)
  .
/usr/share/mime/magic, 1173: Warning: offset `[10:text/x-tex]' invalid
/usr/share/mime/magic, 1173: Warning: type `[10:text/x-tex]' invalid
file: No current entry for continuation

Похоже, команда file ожидает магические файлы в другом формате, чем формат магических файловчто update-mime-database выводит.

Что я здесь пропустил?

Как мне заставить команду file принимать новые типы пантомимы?

1 Ответ

1 голос
/ 07 февраля 2012

Использование общей базы данных типа MIME представляется неправильным подходом.На самом деле, похоже, что общая база данных MIME и команда file используют отдельные базы данных (с разными форматами).

Тип MIME video/mp2t не сообщался из-за слишком старой версии file команда.

Ubuntu 11.10.поставляется с версией 5.04 команды file.Невозможно сообщить о типе video/mp2t.

Вот что я сделал, чтобы решить эту проблему:

Я скачал более новую версию libmagic1 deb package .У этого есть версия 5.09-2.

Я установил это:

sudo dpkg -i libmagic1_5.09-2_amd64.deb

Проблема решена!

$ file MY_VIDEO_FILE --mime-type
MY_VIDEO_FILE: video/mp2t
...