Linux 中的日志记录、更改日志、自述文件和配置文件的通用池的命名似乎非常不一致。这总是让我想知道,为什么 *nix 开发人员很久以前没有决定使用通用文件名模式?我觉得必须准确记住文件的命名方式(比如说配置)是不必要的烦人。
例如,下面是配置命名约定:我们找到this
、this.cnf
、this.conf
、this.config
,或者两者都没有,落入下划线this_config
领域,甚至有时是 Windowsythis.cfg
风格。考虑到上述多样性,最受接受的配置命名方法是什么?对于日志、变更日志、自述文件等也可以这样说/询问。
大多数脚本和二进制文件看起来布局良好,具有一致的模式,那么是什么让配置走上了艰难的道路呢?是不是当时发生了什么事情将开发人群划分为命名约定阵营,或者由于 Linux 的开放性和自由精神方法,像这样的“三级”一致性永远不值得追求?
答案1
考虑到上述多样性,最受接受的配置命名方法是什么?
不管你想怎么称呼他们。文件扩展名除了让管理员知道文件可能是什么之外并不重要。人类可能会知道这一点,*.cfg
并且*.conf
两者都可能是配置文件。
我*.cnf
只在 MySQL 中见过,这是一种一次性偏差,您必须向 MySQL/MariaDB 开发人员询问。
是不是当时发生了什么事情将开发人群划分为命名约定阵营,或者由于 Linux 的开放性和自由精神方法,像这样的“三级”一致性永远不值得追求?
这可能不是大多数人认为重要的事情。*.conf
现在大多数人都会选择( nginx
、udev
、apache
、rsyslog
/syslog-ng
等),但当文件路径只能包含几个字符时,它可能*.cfg
是首选。它可能永远不会因为同样的原因/etc/fstab
从未被重命名而改变,大多数关心的人已经知道有问题的文件的作用。
答案2
是不是那天发生了什么事情那个分裂开发人员涌入……营地……?
您可能会倒着看时间顺序。 “过去”,“Unix 开发人群”都在 AT&T 贝尔实验室。 (如果你为磁通电容器提供足够的电力,你也许能够回到“Unix 开发人群”只有两个人的时代,据我所知,他们可能共用一个办公室。)加州大学伯克利分校(以及其他不太知名的大学)开始对其进行修改,IBM、Sun 和 Oracle 等公司也加入了进来(生产 Xenix、AIX 和 Solaris 等产品),这甚至还没有计算所有公司(例如,Sybase)刚刚为 Unix 编写了应用软件。 (看POSIX 到底是什么? 有关 Unix/POSIX 的更多背景/历史。)
这些开发人员 (1) 不知道彼此在做什么,因为他们为竞争组织工作,(2) 认为他们的方式更好,并且不关心为用户提供统一的体验,和/或 (3 )故意选择任意不兼容,以达到分割市场的目的。 (有人认为,IBM 战略性地将 Unix 市场打造成一片丛林,以便将客户从 Unix 上赶回他们的专有操作系统。)这只是 Linux 遗产的一小部分。
那么为什么这个问题没有被“修复”呢?好吧,正如您自己所说,“如果它没有坏,就不要修理它。”产品内部的向后兼容性(例如,mySQL)可能被认为比产品之间的水平兼容性更有价值。