Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 为什么开源项目经常有没有文件扩展名的文档文件?_File_Open Source_File Extension - Fatal编程技术网

File 为什么开源项目经常有没有文件扩展名的文档文件?

File 为什么开源项目经常有没有文件扩展名的文档文件?,file,open-source,file-extension,File,Open Source,File Extension,开源项目通常附带一个自述文件,一个包含许可证文本的文件,以及其他一些东西。通常,人们会发现这些杂项文档文件的命名没有文件扩展名。是Github的一个示例。通常,名称将使用大写字母,如README而不是README.txt 这有点麻烦,因为如果您下载项目的副本,为了打开这些文件,您必须添加文件扩展名,或者每次都指示操作系统在哪个程序中打开它。为什么有人不愿意添加文件扩展名?这个令人恼火的惯例从何而来?我想它来自旧的Linux或UNIX系统,在这些系统中,您只有一个控制台和一些文本编辑器。无法根据文

开源项目通常附带一个自述文件,一个包含许可证文本的文件,以及其他一些东西。通常,人们会发现这些杂项文档文件的命名没有文件扩展名。是Github的一个示例。通常,名称将使用大写字母,如README而不是README.txt


这有点麻烦,因为如果您下载项目的副本,为了打开这些文件,您必须添加文件扩展名,或者每次都指示操作系统在哪个程序中打开它。为什么有人不愿意添加文件扩展名?这个令人恼火的惯例从何而来?

我想它来自旧的Linux或UNIX系统,在这些系统中,您只有一个控制台和一些文本编辑器。无法根据文件名的一部分自动选择程序。许多Linux用户在处理文件和目录时仍然以这种方式工作。我以前是这样做的,直到我看到人们在工作中使用Windows资源管理器和鼠标操作的速度快得多


相反,这些文件是用大写字母命名的,因为ls会按ASCII排序顺序列出它们,而作者希望这些文件首先出现。我不确定它是否仍然存在。当时,他们很乐于助人

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

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

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

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


在Linux和其他*nix操作系统的图形环境中,不需要文件扩展名,因为它们不完全依赖扩展名来确定文件的类型或与之关联的程序。相反,关联是由MIME类型决定的,而MIME类型又可以由前面提到的魔法代码决定。

我认为这是github的默认设置。实际上它是github的README.md,当您创建一个新的存储库时,它会自动添加该文件,我想开发人员不会编辑它,如果您从终端启动文本编辑器,就像许多硬核用户一样,如果有文件扩展名,则没有什么区别。因为大多数开源项目不觉得需要键入额外字符来支持封闭源代码操作系统上的8.3命名,或者想猜测什么文件扩展名与某人首选的文本编辑器相关。它不一定是旧的。这些来自新*nix软件的文件通常也没有扩展名。正如Kitsune所说,扩展并不是系统确定文件类型的唯一方法。所以,正如你所说,当时,他们很有帮助;现在,他们仍然很有帮助。此外,关于大写的问题只解决了问题的一个侧面,它可能被命名为README.txt或README.txt。@EliahKagan我希望我没有冒犯你。我确实认为,在今天的环境中,对于这些开发人员来说,包含扩展会更有帮助,因为它可以帮助Windows用户,而且大多数Linux用户都有自动完成功能来消除额外的键入。并不是说这些开发者一定不喜欢Windows用户;他们可能只是没有想到