是.yaml还是.yml?

spu*_*der 281 yaml configuration-files app.yaml

根据yaml.org,官方文件扩展名是.yaml.

引用:

是否有YAML文件的官方扩展名?

请尽可能使用".yaml".

然而,在互联网上似乎存在对使用扩展的分歧.如果您在Web上查找示例,其中许多使用未经批准的.yml扩展.

对于较短的搜索结果,搜索Google的结果将近3倍.


在此输入图像描述
49,100


在此输入图像描述
15400


我应该使用哪个?创作者建议的正确的4个字母扩展名,或者在互联网的狂野西部发现的3个字母的扩展名?

Ban*_*ami 183

文件扩展的本质甚至存在是依赖于平台的(一些模糊的平台甚至没有它们,请记住) - 在其他系统中它们只是传统的(UNIX及其类似),而在其他系统中它们具有明确的语义在某些情况下,对长度或字符内容的特定限制(Windows等).

由于维护者要求你使用".yaml",这就像你可以获得的"官方"裁决那样接近,但8.3的习惯很难摆脱(而且,令人震惊的是,2013年仍然偶尔相关).

  • 3个字母的后缀约定已经过时了近20年.如果有的话,我认为万维网在90年代已经弃用了它.任何人甚至试图关心它是令人反感的.足以让我提出针对任何软件,打破,因为它的错误. (31认同)
  • @Dave 我会记住您的宝贵反馈。(*将您的反馈保存到“DOCUME~1.HTM”。*) (22认同)
  • 我将文件命名为.yml,您对此无能为力。 (6认同)
  • 更糟糕的是我安装的Notepad ++似乎弄错了:-( (3认同)
  • 维基百科的[Category:Filename_extensions](https://en.wikipedia.org/w/index.php?title=Category:Filename_extensions&oldid=641316501)页面列出了[.a](https://en.wikipedia.org/ Wiki / .a),[.o](https://en.wikipedia.org/wiki/.o)和[.z](https://en.wikipedia.org/wiki/.Z)。不知何故,它错过了[.c和.h](https://en.wikipedia.org/w/index.php?title=C_%28programming_language%29&oldid=734449132)。这些单字母扩展名可帮助我们看到扩展名应尽可能长,而不再需要(半引号[A. Einstein](https://en.wikipedia.org/wiki/Albert_Einstein))。 (3认同)
  • 对于那些感兴趣的人:使用“.yaml”的建议早在 [2006 年 9 月](https://web.archive.org/web/20060924190202/http://yaml.org/faq.html) 就出现了。 (2认同)

Mar*_*ell 24

编辑:

我应该使用哪个?创作者建议的正确的4个字母扩展名,或者在互联网的狂野西部发现的3个字母的扩展名?

这个问题可能是:

  1. 征求建议书; 要么

  2. 这种情绪的自然表达,在观察某些官方建议被忽视时经历.

人们对于追随者的偏好有所不同:

  1. 官方建议; 要么

  2. 实践的优势.

当然,我不太可能影响你,关于你喜欢哪条路径!

在接下来的内容中(并且,在科学的精神中),我只是做一个假设,关于什么(事实上)导致大多数人使用3个字母的扩展名.而且,我专注于有效的原因.

通过这个,我不打算道德劝告.你可能还记得,有些东西的事实并不意味着它应该是.

无论你的个人倾向如何,无论走一条路还是另一条路,我都不反对.

(编辑结束.)

此首选项(在现实生活中使用)是由8.3字符DOS上下的限制引起的建议IMO是红鲱鱼(错误和误导性的).

截至2016年8月,YML和YAML的谷歌搜索量约为6,000,000和4,100,000(精确度为两位数).此外,"YAML"计数不公平,因为它包括按名称提及语言,而不是作为扩展使用.

截至2018年7月,Google对YML和YAML的搜索量分别约为8,100,0004,100,000(再精确到两位数).因此,在过去两年中,YML的受欢迎程度基本上翻了一番,但YAML保持不变.

另一种文化措施是试图解释文件扩展名的网站.例如,在FilExt网站上(截至2018年7月),YAML的页面结果为:"Ooops!FILEXT.com数据库没有关于文件扩展名.YAML的任何信息."

然而,它有一个YML条目,它给出:"YAML ...使用文本文件并将其组织成人类可读的格式."database.yml'是Ruby on Rails使用YAML时的典型示例连接数据库."

截至2014年11月,维基百科关于扩展YML的文章仍然声明".yml"是" YAML文件格式文件扩展名"(重点补充).它的YAML文章列出了两个扩展,没有表达偏好.

扩展名".yml"足够清晰,更简单(因此更容易打字和识别),并且更为常见.

当然,这两个扩展都是很长的可能扩展名的缩写,".yamlaintmarkuplanguage".但是程序员(和用户)不想输入所有这些!

相反,我们程序员(和用户)希望尽可能少地打字,但仍然是明确无误的.我们希望尽快看到它是什么类型的文件,而不是阅读更长的单词.键入多少个字符可以完成这两个目标?不是答案三(3)?换句话说,YML?

维基百科的类别:Filename_extensions页面列出了.a,.o.Z的条目.不知何故,它错过了.c和.h(由C语言使用).这些单字母扩展示例帮助我们看到扩展应该尽可能长,但不再是(引用阿尔伯特爱因斯坦的一半).

相反,请注意,一般来说,很少有扩展名以"Y"开头.通常,另一方面,字母X用于各种含义,包括"交叉","可扩展","极端","可变"等(例如,在XML中).因此,从"Y"开始已经传达了很多信息(就信息理论而言),而从"X"开始则没有.

因此,在语言学上,首字母缩略词"XML"(在某种程度上)只有两个信息性字母("M"和"L").相反,"YML"具有三个信息性字母("M","L"和"Y").实际上,以Y开头的现有缩略语似乎非常小.这意味着,这就是为什么四个字母的YAML文件扩展名被大大夸大了.

也许这就是为什么我们在实践中看到将所谓的缩写延长到四(4)个字符的"语言"压力(在自然使用中)很弱,以及将这个缩写缩短为三(3)个字符的"语言"压力很强.

纯粹是因为这些因素(而不是官方认可),我会注意到YAML.org网站的最新新闻(2011年11月)是关于用JavaScript编写的项目,JS-YAML,它本身更喜欢使用扩展名".yml".

上述因素可能是主要因素; 然而,尽管发明者偏好,所有因素(已知或未知)显然导致缩写的三(3)字符扩展成为YAML的主要用途.

".YML"似乎是事实上的标准.然而,同样的发明者对世界对人类可读数据语言的需求持有洞察力和正确性.我们应该感谢他们提供它.

  • 永远记住,维基百科是一个**协作**百科全书.我编辑了YML消歧页面,以反映它只是"**常见**扩展"而不是"****扩展". (16认同)
  • [对 YAML 使用文件扩展名“.yml”](http://markdblackwell.blogspot.com/2013/07/use-file-extension-yml-for-yaml.html) 列出了许多具体示例、建议和配置设置默认为野外发现的“.yml”。 (2认同)
  • 领域特定语言 [YML](https://fdik.org/yml/)(生成 XML 的标记)已经存在多年,甚至可能与 YAML 一样长。您的 Google 搜索计数未计入,很可能计入了 YML 引用以及错误的 YAML 引用。YAML 并不是过度规范,而是使用适当的名称来防止混淆。 (2认同)

Chr*_*isW 12

.yaml显然是官方扩展名,因为某些应用程序在使用.yml. 另一方面,我不熟悉任何使用 YAML 代码但因.yaml扩展而失败的应用程序。

我只是偶然发现了这一点,因为我习惯于使用.ymlAnsible 和 Docker Compose 进行编写。出于习惯,我.yml在编写无提示失败的 Netplan 文件时使用。我终于明白了我的错误。Netplan 的一个流行的 Ansible Galaxy 角色的作者在他的代码中做出了同样的假设:

- name: Capturing Existing Configurations
  find:
    paths: /etc/netplan
    patterns: "*.yml,*.yaml"
  register: _netplan_configs
Run Code Online (Sandbox Code Playgroud)

然而,任何带有.yml扩展名的文件都会被 Netplan 忽略,就像带有.bak扩展名的文件一样。由于 Netplan 非常安静,并且不会对成功提供任何反馈,即使使用netplan apply --debug,这样的配置01-netcfg.yml也会在没有任何有意义的反馈的情况下静默失败。


bel*_*nta 5

在网上看了一堆人的评论后,我的第一反应是,这基本上是那些真正不重要的辩论之一。但是,我最初的兴趣是找出正确的格式,以便与我的文件命名实践保持一致。

长话短说,YAML 的创建者说.yaml,但我个人一直在做.yml。这对我来说更有意义。所以我继续寻找肯定的旅程,很快,我意识到 docker.yml无处不在。我一直在写docker-compose.yml文件,而你一直在 kubernetes 的文档中看到 kubectl apply -f *.yaml......

因此,总而言之,这两种格式显然都被接受,如果您在另一端(即:编写接收 YAML 文件作为输入的系统),您应该同时允许这两种格式。这似乎是另一个蛇案与骆驼案的事情......

  • 那么对于您来说使用 [YML](https://fdik.org/yml/) 域特定语言(它可能与 YAML 一样长)更有意义:`.yl`、`. ym` 或 `.ml` 扩展名? (3认同)