gpt4 book ai didi

filenames - 点文件有文件扩展名吗?

转载 作者:行者123 更新时间:2023-12-03 02:16:41 24 4
gpt4 key购买 nike

点文件(例如 .htaccess .gitignore.config)是否具有文件扩展名但没有文件名,或者它们被认为具有文件名一个文件名但没有扩展名?

<小时/>

我正在尝试在 PHP 中实现一些实用函数,PHP 因做错事而臭名昭著,我注意到 PHP 的 pathinfo 函数认为点文件有文件扩展名,没有文件名,而节点的 path.extname 认为点文件有文件名但没有扩展名。

我不清楚是否存在标准,或者这是否相当于开发人员的偏好。

最佳答案

你付了钱,然后你可以选择:是、否、也许。

这取决于您对“扩展”的定义。

  • 是“名称中最后一个点之后的任何内容”吗?如果是这样,这些文件没有名称并且都是扩展名。
  • 是“点后面不是名称中第一个字符的任何内容”吗?如果是这样,这些文件没有扩展名。
  • 如果您使用其他定义,则需要相应调整答案。

请记住,SCCS 文件使用前缀 s.(除此之外;您还会看到 p. 文件 - 并且有许多带有其他前缀的 transient 文件名) 。 SCCS 文件 s.something 是否有扩展名或前缀? (使用s.source.c,它相当简单;有一个前缀、一个名称和一个扩展名或后缀,或者您可以忽略前缀作为特殊情况,名称为s.source 且扩展名为 .c。)默认的可执行文件名称 a.out 又如何呢?诸如 ..dot 这样的名称怎么样?它有扩展名吗?如果有,它是什么?

请注意,DOS 上的答案更加正式。在那里,文件系统用于强制使用(又一个千年左右的)8.3 名称,并且扩展名是有形的。但那在很大程度上已经成为过去的时代(很少有人怀念它)。

Anthony Arnoldpaxdiablo两人都指出存在以 .tar.gz 结尾的名称 - 此类文件的扩展名是什么?

如果您将 somecode-8.76.tar.gz 的扩展名视为 .gz 以外的任何扩展名,那么您就将自己暴露在蠕虫面前。包含的文件是somecode-8.76.tar;可以合理地说它本身具有 .tar 扩展名。将整个 gzip 压缩的 tar 文件的扩展名定义为 .tar.gz 会引发“为什么不是 .76.tar.gz”的问题,并且还意味着您需要重新审视 SCCS 文件命名约定。将名称的 .76 部分吸收到 .76.tar.gz.76.tar 作为后缀确实让生活变得复杂。这是一个有效的问题,但除了“扩展名是从最后一个点到名称末尾的字符串”之外的任何内容确实令人担忧 - 或者需要解释扩展名的含义,并进入另一个复杂的领域,它通常是最好避免。

请注意,操作系统或文件系统级别的 Unix 不关心文件的扩展名。程序可以决定他们关心扩展,但这取决于程序。扩展名是文件类型的指示符;它不是确定的。这就是 file 程序存在来识别文件内容的原因。它查看文件的内容来识别内容;它不关注文件扩展名(因此它也不必决定扩展名是什么)。

关于filenames - 点文件有文件扩展名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32173890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com