文本文件使用哪个扩展名?(Unix/Linux)

jco*_*ora 22 filesystems files text

我注意到我可以在没有扩展名的情况下阅读文本文件.txt。怎么来的?我应该使用或不使用.txt扩展名保存这些文件吗?

另外,.ini文件呢?我通常这样使用它们:config.ini,我应该删除这里的扩展吗?

任何关于 Linux 如何处理文件扩展名的通用资源都会很有用。

Law*_*ceC 38

UNIX/Linux 没有 Windows 那样的早期 DOS/CP/M 传统。因此,扩展对于大多数 UNIX 实用程序和工具来说通常不那么重要。

我通常只使用命令行环境。在 Linux 下的这种环境中的扩展并不真正重要,只是为了方便操作员或用户。(我对 KDE 或 GNOME 的经验不足,无法了解他们的文件管理器如何处理扩展。)

但这种便利通常很重要。如果config.ini真的是微软标准的“.ini”格式,我会让扩展名站着。纯旧文本文件在 Linux 中通常不带有扩展名,但这并非所有程序配置文件都通用。程序员通常可以决定。

如果您想强调它不是配置文件或其他机器可读文档,我认为“.txt”在 Linux 下很有用。但是,在源代码分发中,约定是将此类文件命名为全部大写而不带扩展名(即 README、INSTALL、COPYING 等)

有一些标准和约定,但没有什么能阻止你命名任何你想要的东西,除非你和别人分享东西。

在 Windows 中,命名文件.exe向外壳程序(通常explorer.exe)表明它是一个可执行文件。UNIX 将此知识构建到文件系统的权限中。如果设置了正确的x位(请参阅 参考资料man chmod),它就会被 shell 和内核函数识别为可执行文件(我相信)。除此之外,Linux 不在乎,大多数 shell 不在乎,而且大多数程序在文件中查找它的“类型”。

当然,有一个 nice 命令file可以分析文件并在一定程度上确定它是什么。我相信如果它不能将文件中的数据与任何已知类型匹配,并且如果它只包含可打印的 ASCII/Unicode 字符,那么它就会假定它是一个文本文件。


下面的@Bruce Ediger 是绝对正确的。在内核或文件系统级别,即 Linux 本身,没有任何东西强制或关心文件的内容需要与其名称或应该理解它的程序相匹配。这并不意味着无法创建 shell 或启动器实用程序来根据文件名执行操作。

  • 您应该强调 Linux 文件名没有“扩展名”——包含它的文件名的“.txt”部分只是一个子字符串。您还应该强调,内部文件组织(以 LF 结尾的字符串、以 CR-LF 结尾的字符串、固定大小的记录等)甚至与名称无关,也不是通过名称知道与之相关的文件的“应用程序” . (9认同)
  • 如果您经常在控制台中工作,它也很有用,因为命名良好的文件更容易通过通配符与其他文件区分开来。 (7认同)
  • 我认为只有 DOS 下的 FAT16 8.3 目录条目有一个单独的 3 字节字段用于扩展。为了兼容性,FAT32 保留了 8.3 字段,但实际的“长文件名”是一个没有单独扩展字段的字符串,针对多个目录条目进行拆分 (http://www.fandecheng.com/personal/interests/ewindows/nuhelp/lfnspec.txt)。 htm) (2认同)

bah*_*mat 23

与 Windows 不同,在 UNIX 系统中,文件类型不是由扩展名决定的。文件扩展名只是人类的视觉指示器。您可以命名一个 JPEG foo.c 并在 Gimp 中打开它。与 Windows 的另一个对比是在 UNIX 系统上您必须使用整个文件名,而 Windows 通常会为您处理它(例如,只运行explorervs. explorer.exe)。在 UNIX 上foo.sh必须称为 as foo.sh,而不仅仅是foo.

按照惯例,人们倾向于使用一组通用的扩展。这种做法虽然不必要,但可能对整个人类有益。

  • +1 表示“这种做法……可能对整个人类有益” (7认同)
  • 因为没有“魔法”字节。这只是“所有已知文件类型的简写,这些文件类型的文档和结构足以被高度确定地可靠检测”。它适用于文本或容器文件。对于任何原始或未知数据类型,它通常都会失败。 (3认同)

小智 8

总的来说,我发现保持严格的、描述性的命名约定非常有帮助。您不需要 Unix 中的扩展名,但我会保留它有两个原因:

1) 如果该文件将被 Windows 机器读取,打开它会比尝试找到“打开方式...”更容易。

2) 扩展帮助您,用户,弄清楚文件在做什么。在我们的实验室中: .txt = 文本文件 .sgi = irix 编译的二进制文件 .linux = linux 编译的二进制文件

如果您必须使用较旧的 unix 机器(我们仍然使用 IRIX),请记住 *nix 机器中的回车是不同的,如果您尝试使用 Windows 回车打开文件,程序可能不会欣赏。


小智 6

您可能想阅读Unix 文件系统简介