Linux中的后缀.d是什么意思?

我正在configurationApache,默认情况下我有目录/etc/httpd/conf/etc/httpd/conf.d 。 有什么不同?

你也可以在/etc/init.d等许多其他目录中看到后缀。

“d”代表目录,这样的目录是configuration文件的集合,这些configuration文件通常是包含在主configuration文件中的片段。 重点是划分configuration问题,以提高可维护性。

当你有一个像/etc/httpd/conf/etc/httpd/conf.d这样的区别时,通常情况是/etc/httpd/conf包含各种不同的configuration文件,而.d目录包含多个相同configuration文件types的实例(如“要加载的模块”,“启用的站点”等),pipe理员可以根据需要添加和删除。

这个目录命名约定存在的主要驱动力是configuration文件的包pipe理更简单。 无论是rpm,deb还是其他,都可以更容易(也可能更安全)将文件拖放到目录中,以便自动将其包含到程序configuration中,而不是尝试编辑全局configuration文件。

一个很好的例子是logrotate。 在目录/etc/logrotate.d中,几乎是每个安装了应用程序的应用程序的configuration文件,这些应用程序都保存在/ var / log中 。 有些是捆绑到syslogconfiguration,因为几乎每个系统都有一个消息,wtmp和lastlog文件。 但是如果你在你的系统上安装了Apache,你需要一个简单的方法来自动添加用于轮换Apache日志的configuration,所以它只是在/etc/logrotate.d中放置一个名为httpd的configuration文件,logrotate被configuration为包含那些文件目录。 每个都由守护程序包所拥有,如果您删除了该程序包,它将删除该文件。 它基本上是模块化configuration文件的一种方式。 请注意,这需要程序支持,它不是系统自动为您或某事做的事情。 通常这样做的程序有一个叫做include的configuration指令,它指定了目录在文件系统上的位置。

logrotate.d甚至可能是这个约定在init脚本的init.drc.d目录以外使用的第一位。