ディレクトリ名の.dはどういう意味ですか?

ディレクトリ名の.dはどういう意味ですか?

私は多くのディレクトリの名前に.dがあることを知っています。

init.d
yum.repos.d
conf.d

ディレクトリを意味しますか?それでは、これはどのような曖昧さを取り除きますか?

修正する:それが意味するものについては興味深い答えがたくさんありますが、.d質問のタイトルは正しく選択されていません。 「意味」を「代表」に変えました。

答え1

ここで、サフィックスは.dディレクトリを表します。もちろん、Unixではファイル形式を表すサフィックスは必要ないので、これは必要ありません。ただし、この特別な場合は、コマンド(/etc/init、、、/etc/rc0など)とそのコマンドが使用するディレクトリ/etc/rc1/etc/init.d、、、、..)を削除するためのアクションが必要です。/etc/rc0.d/etc/rc1.d

この規則は少なくともUnix System Vで導入されていますが、おそらくより早く導入されたでしょう。このinitコマンドは最新のSystem Vオペレーティングシステムにありましたが、/etc今では一般的に使用されています。/sbin

多くのアプリケーションがこの規則を採用し、単一ファイル構成ファイルから単一ディレクトリ内の複数の構成ファイルに移動しました。たとえば、次のようになります。/etc/sudoers.d

繰り返しますが、目標は、実行可能ファイルと構成ファイル間の名前の競合ではなく、以前の構成ファイル全体とそれを含むディレクトリ間の名前の競合を避けることです。

答え2

から抜粋Debian メーリングリスト(強調する):

配布パッケージがより一般化するにつれて、多くの独立したパッケージで提供される複数のフラグメントで構成ファイルを構成するより良い方法が必要であることが明らかになった。一部の共有サービスを構成する必要がある各パッケージは、他のパッケージで使用される共有構成ファイルを編集することなく、その構成のみを管理できる必要があります。

最も一般的なルールは、設定ファイルでいっぱいのディレクトリを許可することです。このディレクトリのすべてのエントリは有効になり、設定の一部になります。この規則がより一般化されるにつれて、ディレクトリ名は、置換または拡張する構成ファイルの名前にちなんで命名されることがよくあります。ただし、ディレクトリとファイルは同じ名前を持つことができないため、何らかの方法で区切る必要があるため、設定ファイル名の末尾に.dを追加します。したがって、設定ファイル /etc/Muttrc は /etc/Muttrc.d の断片に拡張され、/etc/bash_completion は /etc/bash_completion.d/* に拡張されます。 /etc/xinetd.conf を補足するために /etc/xinetd.d を使用したり、 /etc/apache2/apache2.conf を補足するために /etc/apache2/conf.d など、この規則のいくつかの変形が時々使用されますになります。しかし、それは同じ基本的なアイデアです。

通常、* .dルールが表示される場合、「これは、一部のサービスの構成にマージされる複数の構成フラグメントを含むディレクトリです」を意味します。


パート2の「.d」の理由は、次のように「分散」と推測されます。デフォルトの構成ファイルの一部ではありませんが、まだ構成の一部です。

答え3

ディレクトリ名の末尾に「.d」を参照すると、この回答はい、単に「ディレクトリ」タグです。

「syslogd」など、ファイル名の後の「d」と混同しないでください。悪魔。バックグラウンドで実行されるコンピュータプロセス。

デーモンの親プロセスは通常initプロセス(PID = 1)ですが、必ずしもそうではありません。プロセスは通常、子プロセスを分岐してから親プロセスをすぐに終了し、initに子プロセスを採用させることでデーモンになります。これは、コントロールttyからデーモンを分離するなど、他の操作が通常行われるため、プロセスを少し簡素化したビューです。 daemon(3) などの一部の UNIX システムには、この目的のための便利なルーチンがあります。

答え4

より一般的には、 .d ディレクトリ (/etc/httpd/conf.d, /etc/rc.d, /etc/ 別の例) は、埋め込まれたファイルが一致する場合、通常は設定のために読み取られ、使用されることを意味します。パターンは一部のマスターリストに明示的に追加する必要はありません。

したがって、ファイルを *.repo として /etc/yum.repos.d に追加すると、yum は設定リスト /etc/yum.conf に追加せずに実行時にそのファイルを使用します。 *.conf 形式のファイルを /etc/http/conf.d に追加すると、Apache は /etc/httpd/conf/httpd.conf に明示的に追加せずにそのファイルを読み込みます。同様に、chkconfigは/etc/init.dのファイルに移動し、cronジョブは/etc/cron.dにあります。

関連情報