为什么开发人员选择不对某些文件使用文件扩展名?以下是来自 MediaWiki 的示例 -
这似乎是有意为之,例如,“信用”和“复制”可能具有法律意图。他们为什么这样做呢?在什么情况下我应该这样做?
K7A*_*AAY 38
Linux 世界中并没有规定必须有扩展。类 UNIX 操作系统的文件系统不会将扩展元数据与文件名的其余部分分开。点字符只是主文件名中的另一个字符。相反,内部文件元数据普遍编码在文件的开头,以显示打开它的应用程序类型。
如果文件没有扩展名,并且不可执行,则它可能是纯文本文件,尤其是全部大写的文件。
正如 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)
...
Run Code Online (Sandbox Code Playgroud)
可执行文本文件的类型从第一行读取,如果它#!以脚本需要的任何解释器的绝对路径开头并包含:
$ cat s0
#!/usr/bin/bash
$ file s0
s0: Bourne-Again shell script, ASCII text executable
Run Code Online (Sandbox Code Playgroud)
解释器的路径不检查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
Run Code Online (Sandbox Code Playgroud)