Mimetype --stdin всегда возвращает текст / обычный

284
WojonsTech

Я испытываю трудности с получением правильной информации MIME-типа без передачи данных о расширении / inode-файле. При использовании магии он всегда возвращается с text / plain независимо от того, что это за файл.

Для получения справочной информации.

Когда я разрешаю linux mimetype использовать glob и другие методы, он работает правильно.

mimetype mountain.jpg

mountain.jpg: изображение / JPEG

Когда я пытаюсь заставить его работать с магической проверкой, потому что я действительно хочу убедиться, что этот файл является изображением, он говорит мне, что это текстовый файл.

mimetype -M mountain.jpg

mountain.jpg: изображение / JPEG

Чтобы убедиться, что это не текстовый файл, я буду использовать команду file

file -i mountain.jpg

mountain.jpg: изображение / JPEG; кодировка = двоичная

Если я попробую одно из следующего, я теперь смогу получить только текст / обычный текст.

cat mountain_dew-400-400.jpg | mimetype -M --stdin

STDIN: текст / обычный

tee mountain_dew-400-400.jpg | mimetype -M --stdin

STDIN: текст / обычный

mimetype --stdin - < mountain_dew-400-400.jpg

STDIN: текст / обычный

Я уже выполнил следующие команды

cpan install IO::Scalar cpan install File::MimeInfo cpan install File::MimeInfo::Magic 
0
`inode / x-empty` звучит как пустой файл. Добавьте вывод `ls -l mountain.jpg` к вашему вопросу. user49740 9 лет назад 0
@ user49740 фиктивные ошибки копирования и вставки, которые вызывали проблему, но все еще получали другую часть WojonsTech 9 лет назад 0
Я вижу ту же проблему здесь. Попробуйте `file -i -` вместо` mimetype --stdin`. user49740 9 лет назад 1
Об ошибке сообщили в Debian BTS: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784545 user49740 9 лет назад 0
Спасибо за отправку сообщения об ошибке. Кроме того, файл -i - кажется, работает, я предположил, что это не труба, так как она не была указана в справочной странице. Если вы хотите отправить полный ответ, я дам вам кредит WojonsTech 9 лет назад 0

1 ответ на вопрос

2
user49740

mimetype --stdin does not appear to work at all. I've submitted Debian bug #784545.

As a workaround you can use file -i - instead of mimetype --stdin.

Похожие вопросы