首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么linux使用文件扩展名来决定打开文件的默认程序,尽管它独立于文件扩展名

问为什么linux使用文件扩展名来决定打开文件的默认程序,尽管它独立于文件扩展名
EN

Unix & Linux用户
提问于 2016-03-02 09:19:01
回答 2查看 20.8K关注 0票数 5

我有一个名为- abc.text的文本文件,它的内容为Hi I'm a text file.。

如果我双击打开这个文件,那么这些文件将在gedit编辑器中打开。

然而,如果我将文件重命名为abc.html (不更改其任何内容),那么默认情况下它将在Chrome中打开。

这种行为在Windows机器上是可以接受的,因为Windows使用文件扩展名来标识文件类型。但据我所知,Linux不需要文件扩展名。

那么,为什么在Linux中更改文件扩展名会改变打开它的默认程序呢?

EN

回答 2

Unix & Linux用户

发布于 2016-03-02 13:44:05

桌面环境有自己的机制来确定在文件浏览器中选择哪个应用程序时打开哪个文件。这与底层unixoid操作系统中的任何内容无关,在本例中,Linux (指内核,可能还有核心库和实用程序)仍然与扩展无关。

这种机制通常是基于扩展的,以方便用户并遵循最小惊喜规则。MIME类型只是用于分配多个扩展(例如.htm、.html、.HTML等)的抽象。设置为公共内容类型,然后使用该类型来确定要/可以对文件做什么。因此,在桌面设置中,您可以为MIME类型分配扩展名,并为每种类型选择应用程序打开文件。

然而,当谈到可执行文件时,在过去的DOS时代,只有三种类型的文件说操作系统是可以执行的,它决定了如何用扩展名来解释它们:.bat、.com、.exe。这一时代早已过去,其他操作系统,如Unix及其所有的后代,从来没有依赖如此微妙的机制,但总是有其他方式来决定是否和如何执行一个文件。

使用扩展的约定被发现是有用的、扩展的并且仍然被使用,但并不是为了操作系统的目的,而是为了方便用户,用户不需要查看名为something.sh的文件就可以发现它可能包含什么。然而,操作系统并不依赖于此,但是应用程序可以这样做,并且脚本可以一直这样做:

代码语言:javascript
复制
for file in *.html; do ...
票数 0
EN

Unix & Linux用户

发布于 2016-03-04 14:14:16

其他答案是:程序(shell)应该选择使用哪个程序来打开特定的文件。

但是,选择的不仅仅是扩展名:在文件的开头通常有一个签名来标识格式。注意,这在几乎所有二进制程序中都很常见,不仅仅是在unix派生格式上.。程序file (及其数据库)是解密文件类型的主要来源。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/266999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档