首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dotfiles有文件扩展名吗?

dotfiles有文件扩展名吗?
EN

Stack Overflow用户
提问于 2015-08-24 02:58:28
回答 4查看 2.6K关注 0票数 41

dotfiles (如.htaccess .gitignore.config )是否有文件扩展名而没有文件名,或者它们是否被认为具有文件名和扩展名?

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-24 03:07:19

你支付你的钱,你选择:是的,不,也许吧。

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

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

请记住,SCCS文件使用了前缀s. (除其他外,您还会看到p.文件--还有许多带有其他前缀的临时文件名)。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以外的任何东西,那么您就是在向一个袋子‘O’蠕虫敞开心扉。包含的文件是somecode-8.76.tar;可以合理地说它本身有一个.tar扩展名。将整个gzipped tar文件的扩展名定义为.tar.gz提出了“为什么不是.76.tar.gz”的问题,也意味着您需要重新访问SCCS文件命名约定。将名称的.76部分作为后缀吸收到.76.tar.gz.76.tar中,确实会使生活变得复杂。这是一个有效的问题,但除了“扩展名是从最后一个点到名称末尾的字符串”之外的任何事情都是令人忧虑的--或者需要解释扩展的含义,并且进入另一个复杂的领域,这通常是最好避免的。

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

票数 21
EN

Stack Overflow用户

发布于 2015-08-24 03:27:26

有人想知道文件的扩展名是因为他想知道文件的类型(或其他元数据),对吗?

dotfile的名称与其类型无关。在dotfile的第一个点之后的部分是它的名称,没有扩展名。但是一个dotfile也可以有一个扩展名(例如,.mongorc.js或UNIX系统上的一些其他隐藏文件)。

所以我想说,节点的path.extname所做的方式是正确的。

从最后一个'.‘返回路径的扩展。在路径的最后部分结束字符串。如果没有“。”在路径的最后一部分或它的第一个字符'.‘中,它返回一个空字符串。

这里有两种不同的东西:

  • 一方面,通过文件扩展名来确定某些元数据的机制,例如在非unix类系统中使用“默认”应用程序打开元数据。
  • 另一方面,Dotfile只是来自类似lsunix系统的隐藏文件(前面有一个普通名称和一个点,以使它们不可见)。因此,.gitignore只是一个名为gitignore并标记为隐藏的文件,这里没有扩展名。
票数 7
EN

Stack Overflow用户

发布于 2015-08-24 03:34:08

我觉得我必须留下一个解决用户实际问题的答案。

在这种情况下,您实际上需要分机做什么?.gitignore.htaccess等文件与文件的全名相匹配。不是“扩展名”(或缺少),而是全名。

我认为应该取消对文件扩展名的检查,并检查文件名。例如,在PHP中:

代码语言:javascript
复制
basename ("/path/to/.htaccess");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32173890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档