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 或启动器实用程序来根据文件名执行操作。
bah*_*mat 23
与 Windows 不同,在 UNIX 系统中,文件类型不是由扩展名决定的。文件扩展名只是人类的视觉指示器。您可以命名一个 JPEG foo.c 并在 Gimp 中打开它。与 Windows 的另一个对比是在 UNIX 系统上您必须使用整个文件名,而 Windows 通常会为您处理它(例如,只运行explorer
vs. explorer.exe
)。在 UNIX 上foo.sh
必须称为 as foo.sh
,而不仅仅是foo
.
按照惯例,人们倾向于使用一组通用的扩展。这种做法虽然不必要,但可能对整个人类有益。
小智 8
总的来说,我发现保持严格的、描述性的命名约定非常有帮助。您不需要 Unix 中的扩展名,但我会保留它有两个原因:
1) 如果该文件将被 Windows 机器读取,打开它会比尝试找到“打开方式...”更容易。
2) 扩展帮助您,用户,弄清楚文件在做什么。在我们的实验室中: .txt = 文本文件 .sgi = irix 编译的二进制文件 .linux = linux 编译的二进制文件
如果您必须使用较旧的 unix 机器(我们仍然使用 IRIX),请记住 *nix 机器中的回车是不同的,如果您尝试使用 Windows 回车打开文件,程序可能不会欣赏。
归档时间: |
|
查看次数: |
27251 次 |
最近记录: |