什么是 MIME 类型?
MIME(多用途 Internet 邮件扩展)的类型来识别文件格式。 MIME 类型构成了 Internet 上对文件类型进行分类的标准方法。
MIME Type是用于描述文件的类型的一种表述方法,其将文件划分为多种类型,方便对其进行统一的管理。MIME Type指定了文件的类型名称、描述、图标信息,同时通过与.desktop应用程序描述文件整合,指定了文件的打开方式。
MIME 类型名字遵循指定的格式:
类型和子类型, 在 MIME 类型中,类型和子类型不区分大小写。
1 | media-type/subtype-identifier |
目前,有十种注册类型:application,audio,example,font,image,message,model,multipart,text和video。
例如:
1 | multipart/form-data |
完整MIME 类型示例:
1 | application/vnd.api+json |
application作为类型,api作为子类型,vnd是厂商前缀,+json是后缀,表示可以解析为JSON。
获取文件的 MIME 类型
xdg-mime命令
显示文件的
MIME类型:1
xdg-mime query filetype {file}
例如:
1
2➜ xdg-mime query filetype one.jpg
image/jpeg显示
MIME类型的默认应用程序1
xdg-mime query default {mimetype}
例如:
1
2
3➜ xdg-mime query default image/jpeg
/usr/share/applications/deepin-image-viewer.desktop显示文件默认应用程序的语法
1
xdg-mime query default "$(xdg-mime query filetype {file})"
例如:
1
2xdg-mime query default \
`xdg-mime query filetype "$(find ~ / -iname '*.png' -print -quit)"`设置
MIME类型的默认打开应用程序1
xdg-mime default dekstop filetype
例如:
1
xdg-mime default dde-file-manager.desktop inode/directtory
file 命令
查询文件类型:
1
file --mime-type INPUT_FILE
例如:
1
2➜ file --mime-type one.jpg
one.jpg: inode/symlink
自定义的 MIME 类型
如需为系统上的所有用户添加一个自定义的 MIME 类型,并为该 MIME 类型注册一个默认的应用程序,您需要在 /usr/share/mime/packages/ 目录下创建一个新的 MIME 类型说明文件,在 /usr/share/applications/ 目录下创建一个 .desktop 文件。
比如我们创建一个application/x-newtype类型:
创建 /usr/share/mime/packages/application-x-newtype.xml 文件
1
2
3
4
5
6
7<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-newtype">
<comment>new mime type</comment>
<glob pattern="*.xyz"/>
</mime-type>
</mime-info>上述
application-x-newtype.xml文件定义了一种新的MIME类型application/x-newtype,并指定拓展名是.xyz的文件为该MIME类型。创建一个名为例如
myapplication1.desktop的新的.desktop文件,并将它放置在/usr/share/applications/目录下:1
2
3
4
5[Desktop Entry]
Type=Application
MimeType=application/x-newtype
Name=My Application 1
Exec=myapplication1请以
root身份更新MIME数据库以使您的更改生效:1
➜ update-mime-database /usr/share/mime
请以
root身份更新应用程序数据库:1
➜ update-desktop-database /usr/share/applications
如需为个别用户添加自定义的 MIME 类型,并为该MIME 类型注册一个默认的应用程序,您需要在 ~/.local/share/mime/packages/ 目录下创建一个新的 MIME 类型说明文件,并在 ~/.local/share/applications/ 目录下创建一个 .desktop 文件。