Как назначить (установить) тип MIME для файла?

14

Есть ли команда, которая может установить MIME-тип файла? например:

mime --set --MIME="image/pjpeg" filename.jpg  
Учитель PHP
источник
Он довольно старый, но, может быть, он все еще полезен: rlog.rgtti.com/2010/11/22/… (извините, сейчас не время копать ...). Пожалуйста, добавьте ответ самостоятельно, если он работает!
Rmano
Возможный дубликат Как мне изменить тип MIME для файла?
Сильвен Пино
2
@SylvainPineau Вопрос, который вы связали, похож, но не является дубликатом, и в этой ссылке нет ни ответа на мой вопрос, ни ответа на сам вопрос о ссылке! Основываясь на принятом ответе в этой ссылке, проблема asker была не в типе MIME, а в самом содержимом файла.
Ученик PHP
2
@PHPLearner Посмотрите на help.ubuntu.com/community/AddingMimeTypes , особенно на использование XML-файлов иupdate-mime-database
Сильвен Пино
2
@PHPLearner: я снял свой закрытый голос
Сильвен Пино

Ответы:

3

Вопрос будет уже ответил на @PHPLearnerв комментарии. Однако здесь более длинный ответ.

Нет конкретной команды, подобной mimeтой, которая задается в вопросе, и, несомненно, одна такая команда может быть создана. Для добавления нового MIME-типа достаточно всего лишь редактировать /etc/mime.typesфайл.

Допустим, вы хотите добавить MIME-тип с расширением .btc, затем

1. Проверьте, существует ли тип MIME

Откройте командную строку и введите строку ниже (замените btcсвоим расширением)

grep 'btc' /etc/mime.types

Теперь эта команда выведет строку, если этот тип MIME уже добавлен. Похоже, что это для конкретных поисков MIME

$ grep 'cpp' /etc/mime.types
text/x-c++src                        c++ cpp cxx cc

$ grep 'py' /etc/mime.types
application/x-python-code                       pyc pyo
text/vnd.debian.copyright
text/x-python                                   py 

$ grep 'btc' /etc/mime.types

Если ваше расширение не выводит какие-либо строки (как btcв данном случае), или если выданные строки не включают ваше расширение, вы должны создать новый тип MIME. В противном случае ваше расширение уже имеет тип MIME, включенный в файл /etc/mime.types.

2.1 Создание типа MIME (если требуется)

Если выходных данных не было или данные не содержали вашего расширения, мы должны добавить MIME-тип. Для этого типа в командной строке

gksudo gedit /etc/mime.types

Измените следующий текст, чтобы слово «расширение» заменялось расширением вашего файла (без точки), добавьте строку в конец mime.typesфайла и сохраните. Здесь наше расширение - биткойн, и мы пишем btc(НЕ .btc), который будет рассматриваться как расширение для файлов биткойн.

text/extension                   extension

И скопируйте измененную часть «текст / расширение».

В нашем случае это будет выглядеть так

text/bitcoin-text                btc

Сохраните файл и выйдите.

2.2 Добавление MIME-типа с использованием .xmlфайла иupdate-mime-database

Если редактирование /etc/mime.typesфайла не работает для вашего расширения, то вы можете попробовать этот обходной путь.

Создайте новый .xmlфайл, который описывает ваше расширение, как это, и сохраните его.

<?xml version="1.0" encoding="utf-8"?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/bitcoin-text">
<glob pattern="*.btc"/>
</mime-type>

Теперь добавьте этот файл в /usr/share/mime/applicationпапку. После того, как вы добавили или изменили все, что вам нужно, выполните команду

sudo update-mime-database /usr/share/mime

3. Добавление иконки в MIME-тип

Теперь нам нужно связать значок с типом MIME. Получите значок SVG и назовите его «text-extension.svg», или как бы вы ни назвали ваш измененный тип MIME; это будет значок для представления всех экземпляров типа MIME в вашей системе.

Итак, мы переименовываем файл .svg, чтобы он совпадал с bitcoin-text.svg (или «insertYourMIMEtype.svg»), чтобы slashes are replaced with "-"и там были no capital letters.

Затем просто выполните следующие команды, заменив «биткойн-текст» на ваш тип MIME.

 sudo cp bitcoin-text.svg /usr/share/icons/gnome/scalable/mimetypes
 sudo gtk-update-icon-cache /usr/share/icons/gnome/ -f

Relogin и все файлы, заканчивающиеся расширением MIME, будут отображаться с этим значком.

C0deDaedalus
источник
вам действительно нужно добавить XML-файл в / usr / share / mime / packages, если вы добавите его в / usr / share / mime / application при запуске update-mime-database, он будет
удален