AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 7517
Accepted
Peter.O
Peter.O
Asked: 2010-10-16 06:11:29 +0800 CST2010-10-16 06:11:29 +0800 CST 2010-10-16 06:11:29 +0800 CST

MIME 类型和 File .extensions 之间有什么关系?

  • 772

我可能在这里有错误的想法,但我认为:

MIME 类型是嵌入在文件中的识别代码。
文件 .extensions是识别代码,以文件名为后缀。

我认为,从我在昏暗的黑暗时代听到的一些话,Linux 与 .extension 无关......(也许是在早期,从那以后情况发生了变化......?)

我最近来自 Windows 世界,在操作系统级别,文件 .extension 是(据我所知)将其与其相关应用程序相关联的唯一方法。

因为我不知道为什么,我发现一个名为“fred”的文件和一个名为“fred.txt”的文件都在文本编辑器中打开有点令人不安。

这里有明确的等级制度吗?

mime-type file-association
  • 3 3 个回答
  • 20236 Views

3 个回答

  • Voted
  1. Best Answer
    sepp2k
    2010-10-16T06:37:20+08:002010-10-16T06:37:20+08:00

    MIME 类型只是命名类型的一种方式。它们与如何确定文件类型没有任何关系。

    有两种方法可以确定文件的类型:a)查看其扩展名并希望它准确或 b)查看其内容,然后据此猜测。如果文件没有扩展名 b 是唯一的选择。

    许多(二进制)文件格式都有一个特定的标题,您可以查看它来确定它们的类型。这使得选项 b 对于这些类型非常可靠。

    纯文本文件格式通常可以通过它们的结构来确定(如果一个文件包含很多 html 标签,它可能是一个 html 文件)。

    在 unix 和 linux 系统上,您可以使用file命令行实用程序根据文件的内容找出文件的类型。

    文件管理器经常使用选项 a 和 b 的某种组合(例如,首先查看文件扩展名,如果不知道(或文件没有扩展名),请查看内容)。

    文件的类型不作为元数据存储在常见的 linux 文件系统上。

    • 16
  2. dv3500ea
    2010-10-16T06:34:07+08:002010-10-16T06:34:07+08:00

    在 Linux 中,文件扩展名是文件名的一部分,实际上对操作系统没有任何意义。MIME 类型是对文件内容的描述。fred并且fred.txt两者都有一个 MIME 类型text/plain。

    文件管理器(例如 Nautilus)使用此 MIME 类型来了解使用哪个程序打开文件。在终端中,该xdg-open命令执行相同的操作。但是,这是用户空间级别而不是操作系统级别。

    文件实际上并不包含这种 MIME 类型,但打开它们的程序使用各种方法来确定这种 MIME 类型是什么。有些仅依赖文件扩展名,但大多数使用混合技术,包括查看文件开头的数据。

    如果文件的开头只包含可以表示为 ASCII 字符的字节,则可以安全地假定它是一个文本文件。如果扩展名类似于 .html,则程序假定它是一个 HTML 页面,因此使用 Web 浏览器打开它。同样的事情也适用于二进制文件格式。例如,我知道位图文件格式以 ASCII 中的“BMP”开头,然后是表示图像的二进制数据。

    简而言之,Linux 程序根据文件中的数据及其文件扩展名做出有根据的猜测。这听起来可能不太可靠,但使用的算法比我给出的示例更复杂,实际上非常准确。

    • 15
  3. Lincoln
    2010-10-16T06:34:21+08:002010-10-16T06:34:21+08:00

    在 linux 世界中,文件扩展名只是文件类型的一个指标。有一个名为“file”的命令行工具可以猜测文件的类型。

    要获得这种类型,主要有3个指标:

    • 扩展名
    • 文件系统中的特殊属性(如符号或硬链接、文件夹、输入设备等)
    • 内容
      • 二进制(如可执行文件中的 ELF 信息)
      • 文本(如<html>, #!/bin/bash)

    文件类型和 MIME 类型之间的关系是,MIME 只是表示文件类型的标准(如text/css)。

    Linux“猜测”文件类型并打开该类型的关联程序。

    • 5

相关问题

  • 文件扩展名/mime-types/icons/default 应用程序是如何关联的?

  • 如何从命令行获取文件的 mime 类型?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve