Linux 文件 MIME 类型简介


简介

MIME 类型是 Linux 文件管理中的一个重要方面,它使操作系统能够识别文件格式并确定用于打开文件的适当程序。了解 MIME 类型非常有益,尤其是在处理 Linux 系统上的各种文件格式时。本文概述了 MIME 类型,并解释了如何在 Linux 上确定文件的 MIME 类型。它还介绍了 xdg-mime 命令,这是一个强大的 Linux MIME 类型管理工具,允许用户更改与特定文件类型关联的默认应用程序或添加新的 MIME 类型。了解如何管理 MIME 类型可以提高生产力并改善在 Linux 系统上处理文件时的整体用户体验。

Linux 中的不同 MIME 类型

在 Linux 中,MIME 类型(多用途互联网邮件扩展)用于根据文件内容识别文件类型,并将其与相应的应用程序关联。以下是 Linux 中使用的一些最常见的 MIME 类型:

text/plain - Plain text files
text/html - HTML files
application/pdf - PDF documents
image/jpeg - JPEG image files
image/png - PNG image files
video/mp4 - MP4 video files
audio/mp3 - MP3 audio files
application/zip - ZIP compressed archive files
application/json - JSON data files
application/xml - XML data files

您可以使用“file”命令后跟文件名来查看文件的 MIME 类型。例如,“file document.pdf”将显示“document.pdf”文件的 MIME 类型为“application/pdf”。

了解 MIME 类型

虽然 MIME 类型是识别文件类型的标准方法,但它并没有存储在 Linux 文件系统中单个文件中。

有两种方法可以知道 MIME 类型:

  • 按文件扩展名查看 MIME 类型

  • 按文件内容查看 MIME 类型

  • 按文件扩展名查看 MIME 类型 — 确定 MIME 类型的一种方法是使用文件扩展名。但是,如果扩展名不正确或缺失,则此方法可能不正确。仅仅根据文件的扩展名来确定 MIME 类型并不总是可靠的。

  • 按文件内容查看 MIME 类型 — 我们可以通过文件内容获取 MIME 类型。例如,JPG 图片文件具有独特的十六进制签名,例如 FF D9 和 FF D8。这种方法更好,但需要额外的 I/O 工作,速度可能较慢。

总之,为了准确确定 Linux 中文件的 MIME 类型,我们必须同时考虑文件扩展名和文件内容的特定特征。即使文件扩展名不正确或缺失,这种方法也能确保正确确定 MIME 类型。

使用 xdg-mime 命令发现文件的 MIME 类型

xdg-mime 实用程序使用 shared-mime-info 数据库来识别 MIME 类型。首先,它尝试根据文件的扩展名识别 MIME 类型。如果失败,它将继续分析文件的内容。

您可以使用 xdg-mime 命令获取 JPG 图片文件的 MIME 类型。这是一个示例:

示例

# Query the MIME type of the JPG image file
xdg-mime query filetype example.jpg

输出

image/jpeg

输出表明文件 example.jpg 的 MIME 类型为“image/jpeg”,这意味着该文件是 JPEG 图片文件。xdg-mime 命令根据文件内容而不是文件扩展名来确定 MIME 类型。在这种情况下,文件的内容表明它是一个 JPEG 图片文件,这就是命令返回“image/jpeg”的原因。

示例

让我们修改文件扩展名并观察 xdg-mime 命令的输出。

$ mv example.jpg example.zip

$ xdg-mime query filetype example.zip

输出

application/zip

因此,它显示了错误的 MIME 类型,因为 xdg-mime 命令最初根据文件扩展名在数据库中搜索 MIME 类型。

示例

如果我们完全删除文件扩展名,让我们观察结果:

$ mv example.zip example

$ xdg-mime query filetype example

输出

image/jpeg

当使用 xdg-mime 命令无法通过文件扩展名确定 MIME 类型时,它将转而根据文件内容搜索 MIME 类型。

file 命令

“file”命令通常包含在 FreeBSD 和 Linux 等免费操作系统中,并且可以与“--mime-type”选项一起使用以检索给定文件的 MIME 类型。

示例

$ file --mime-type example.jpg

输出

example.jpg: image/jpeg

让我们通过更改文件扩展名并验证它是否仍然可以正确识别修改后的文件的 MIME 类型来测试“file”命令输出的准确性。

示例

$ mv example.jpg example.zip

$ file --mime-type example.zip

输出

example.zip: image/jpeg

即使更改了文件扩展名,“file”命令仍然可靠,因为它不依赖于扩展名来识别文件的 MIME 类型。相反,它检查文件的实际内容来做出此确定。这种方法使“file”命令在这种情况下更可靠。

我们删除文件扩展名,并依赖于 file 命令的持续准确性。

示例

$ mv example.zip example

$ file --mime-type example

输出

example: image/jpeg

正如我们所知,“file”命令不关注扩展名,它关注内容,这就是它显示相同输出的原因。

结论

Linux 使用 MIME 类型来解释文件,指示其格式以及如何显示或打开它们。“file”命令可以轻松识别 MIME 类型。您可以为无法识别的文件格式注册自定义 MIME 类型,MIME 类型在 Web 开发中至关重要,以便在浏览器中正确显示网页。

更新于:2023年3月29日

4K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.