-1

开源项目通常带有一个自述文件、一个包含许可证文本的文件,可能还有其他各种东西。通常,人们会发现这些杂乱无章的文档文件在命名时没有文件扩展名。是一个来自 Github 的例子。名称通常大写,如“README”而不是“readme.txt”。

这有点麻烦,因为如果您下载项目的副本,为了打开这些文件,您必须添加文件扩展名,或者每次都指示操作系统应该在哪个程序中打开它。为什么要有人不想添加文件扩展名吗?这种令人讨厌的约定从何而来?

4

2 回答 2

10

如果您经常使用 Linux 系统(或其他传统的类 UNIX 系统,例如 BSD),您可能会注意到许多类型的文件缺少扩展名,包括可执行文件。

Linux 和其他 *nix 系统倾向于依赖文件扩展名以外的方法来确定文件的类型(例如开头的魔术代码,许多文件格式都有)。如果您的系统带有“文件”实用程序(预装在 Windows 以外的大多数操作系统上),您可以对此进行测试。

将文件命名为 README 等的做法,不带扩展名,可以追溯到很久以前。在控制台上工作时,您倾向于通过执行类似的操作来打开文件program ./path/to/file,其中 'program' 是您要打开的程序的名称,而 './path/to/file' 是您要打开的文件的路径想要打开(在这种情况下是相对的,或绝对的)。由于您正在指示特定程序打开文件,因此无需进行实际检测来确定要打开的程序(尽管现代文本程序通常会尝试检测非文本文件并发出警告)。

另一方面,Windows 将文件扩展名与特定程序关联以打开它;它不会查看文件内容来确定要打开哪个程序。要在 Windows 中打开没有扩展名的文件,只需右键单击该文件,然后您可以选择要打开的任何程序。

在 Linux(和其他 *nix 操作系统)的图形环境中,文件扩展名不是必需的,因为它们并不完全依赖扩展名来确定文件的类型或与之关联的程序。相反,关联由 MIME 类型确定,而 MIME 类型又可以由上述“魔术代码”确定。

于 2013-03-23T03:19:17.150 回答
1

我假设它来自旧的 Linux 或 UNIX 系统,你所拥有的只是一个控制台和一些文本编辑器。没有什么可以根据文件名的一部分自动选择程序。许多 Linux 用户在处理文件和目录时继续以这种方式工作。我以前是这样,直到我看到人们在使用 Windows Explorer 和鼠标时操作速度要快得多。

取而代之的是,这些文件以大写字母命名,因为ls它们会按 ASCII 整理顺序列出,而作者希望这些文件首先出现。(我不确定它是否仍然有效。)那时,他们很有帮助!

于 2013-03-23T02:33:26.137 回答