为什么有些应用程序的文件没有扩展名?

为什么有些应用程序的文件没有扩展名?

为什么开发人员选择不对某些文件使用文件扩展名?以下是 MediaWiki 的一个例子 -

在此处输入图片描述

这似乎是有意为之,例如“CREDITS”和“COPYING”可能具有法律意图。他们为什么这样做?在什么情况下我应该这样做?

答案1

Linux 世界中没有既定的规定要求必须有扩展名。类 UNIX 操作系统的文件系统不会将扩展元数据与文件名的其余部分分开。点字符只是主文件名中的另一个字符。相反,内部文件元数据通常编码在文件的开头,以显示哪种应用程序可以打开它。

如果文件没有扩展名,并且不可执行,则可能纯文本,尤其是全部大写的情况。

答案2

正如 K7AAY 所说,文件名和文件类型之间没有很强的联系,尽管我不同意没有扩展名的文件很可能是纯文本。要确定这一点,可以使用以下命令file

$ file *
...
libperconaserverclient18-dev_5.5.44-rel37.3-1.jessie_amd64.deb: Debian binary package (format 2.0)
Percona-Server-5.5.44-37.3-r729fbe2-jessie-x86_64-bundle.tar:   POSIX tar archive (GNU)
...

#!如果可执行文本文件以脚本所需的解释器的绝对路径开头并且包含该路径,则从第一行读取可执行文本文件的类型:

$ cat s0
#!/usr/bin/bash
$ file s0
s0: Bourne-Again shell script, ASCII text executable

解释器的路径未经检查file,因此它可能指向不存在的东西:

$ cat s1
#!/a/very/long/and/winding/path/flimflam
$ file s1
s1: a /a/very/long/and/winding/path/flimflam script, ASCII text executable

答案3

圈出的文件名中 90% 都是大写字母。我们的姊妹网站“软件工程”中提到了这一点:

全大写字母很显眼,使文件很容易看到,这是有道理的,因为它可能是新用户最想看的东西。(或者,至少应该看……)正如其他人已经说过的,以大写字母开头的文件名将列在小写字母名称之前ASCII 贝塔排序LC_COLLATE=C)有助于使文件一目了然。

README文件是自由软件包用户通常希望找到的一组文件的一部分。其他文件包括 INSTALL(软件构建和安装说明)、AUTHORS(贡献者列表)、COPYING(许可证文本)、HACKING(如何开始贡献,可能包括TODO起点列表)、NEWS(最近更改)或 ChangeLog(大部分与版本控制系统重复)。

这就是GNU 编码标准关于文件我必须要说一下README

分发版应该包含一个README以软件包概述命名的文件:

  • 包裹的名称;
  • 软件包的版本号,或者指明在软件包中哪里可以找到该版本;
  • 该包的作用的一般描述;
  • 对该文件的引用INSTALL,该文件应包含对安装过程的说明;
  • 对任何不寻常的顶级目录或文件的简要解释,或其他帮助读者找到源代码的提示;
  • 对包含复制条件的文件的引用。如果使用 GNU GPL,则应将其放在名为 COPYING 的文件中。如果使用 GNU LGPL,则应将其放在名为 . 的文件 COPYINGLESSER

对文件命名约定感兴趣的开发人员应该访问软件工程站点

相关内容