如何为文件分配(设置)MIME类型?


15

是否有任何命令可以设置文件的MIME类型?例如:

mime --set --MIME="image/pjpeg" filename.jpg  

它已经很老了,但也许仍然有用:rlog.rgtti.com/2010/11/22/…(对不起,现在没有时间进行挖掘...)。如果可行,请自己添加答案!
Rmano


2
@SylvainPineau您链接的问题类似,但不是重复的,并且该链接中没有我的问题的答案,也没有链接问题本身的任何答案!根据该链接中可接受的答案,提问者的问题不是MIME类型,而是文件内容本身。
PHP Learner

2
@PHPLearner看看help.ubuntu.com/community/AddingMimeTypes,特别是xml文件的使用和update-mime-database
Sylvain Pineau

2
@PHPLearner:我取消了我的近距离投票
Sylvain Pineau

Answers:


4

问题是已经回答通过@PHPLearner在注释中。但是,这是一个更长的答案。

没有像mime问题中要求的那样特殊的命令,并且无疑可以创建一个这样的命令。要添加新的MIME类型,只需编辑/etc/mime.types文件即可。

假设您要添加带有extension的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(NOT .btc)将被视为比特币文件的扩展名。

text/extension                   extension

并复制修改后的“文本/扩展名”部分。

在我们的情况下,它看起来像

text/bitcoin-text                btc

保存文件并退出。

2.2使用.xml文件和添加MIME类型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

然后只需运行以下命令,并将“ bitcoin-text”替换为您的MIME类型。

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

重新登录,所有以MIME扩展名结尾的文件都将显示该图标。


1
您实际上需要将xml文件添加到/ usr / share / mime / packages中,如果在运行update-mime-database时将其添加到/ usr / share / mime / application中,则将被删除
Vlax
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.