.dはディレクトリ名で何を表しますか?


118

名前に.dが含まれる多くのディレクトリを知っています。

init.d
yum.repos.d
conf.d

ディレクトリを意味しますか?「はい」の場合、これにより何が明確になりますか?

更新:.d意味について多くの興味深い回答がありましたが、私の質問のタイトルは適切に選択されていませんでした。「意味」を「スタンド」に変更しました。


9
起源については、Ask Ubuntuでこの関連する質問に関するmswのコメントを.d参照してください。
ジル

@Gilles、はい、System-Vよりも遅いと思っていましたが、それでも「.d」に意味はありません。
ニュージャージー州

@Gilles:面白いが、答えはあるように思わ:あなたのリンクの最初の答えの最初のコメントのとおり説明が失われた...
greg0ire

の理由.dはわかりませんinit.dが、ほとんどすべてのカスタム設定ファイル.dはRHEL / CentOS / Fedoraのディレクトリに移動するようです。
LiuYan刘研

@Liu Yan-確かに、一貫性があると解釈できる方法で説明できませんでした。
ティムポスト

回答:


102

.dここの接尾辞はディレクトリを意味します。Unixのファイルタイプを示すために、接尾辞を必要としませんが、その具体的な場合には、何かが(コマンドを明確にする必要があったとして、もちろん、これは不要になり/etc/init/etc/rc0/etc/rc1など)と彼らが使用するディレクトリ(/etc/init.d/etc/rc0.d/etc/rc1.d、。 ..)

この規則は、少なくともUnix System Vで導入されましたが、おそらくそれ以前のものです。このinitコマンドは以前/etcは配置されていましたが、現在は一般的/sbinに最新のSystem V OS上にあります。

この規則は、単一のファイル構成ファイルから単一のディレクトリにある複数の構成ファイルに移行する多くのアプリケーションで採用されていることに注意してください。 /etc/sudoers.d

ここでも、目標は、実行可能ファイルと構成ファイルの間ではなく、以前のモノリシック構成ファイルとそれらを含むディレクトリの間の名前の衝突を避けることです。


4
+1、あなたは正しいと思いますが、これまでのところ誰も彼の理論を引用していません
greg0ire

実際の明示的な基準というよりも、ある種の人が増えたのは慣習だと思う、
シャドゥール

1
オプション(明示的に指定された、または環境変数の一部)を使用せずにls(ではなくls -al)コマンドを実行する場合、「。d」を指定すると、ディレクトリがリストから目立つようになります。だから私はいつもそれが終わったと思っていた。--colorLS_OPTIONS
ローレンス

^ colorは、ディレクトリに視覚的にフラグを付ける唯一の、または最良の方法ではありません。ls -Fそれともっと多くの便利なことをします。
underscore_d

56

Debianメーリングリストからの抜粋(強調を追加):

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

採用された最も一般的な規則は、構成ファイルでいっぱいのディレクトリを含めることを許可することで、そのディレクトリにドロップされたものはすべてアクティブになり、その構成の一部になります。この規則が広く普及するにつれて、そのディレクトリは通常、置換または拡張する構成ファイルにちなんで名付けられました。ただし、同じ名前のディレクトリとファイルを持つことはできないため、区別するために何らかの方法が必要であったため、構成ファイル名の末尾に.dが追加されました。したがって、構成ファイル/ etc / Muttrcは/etc/Muttrc.dのフラグメントによって拡張され、/ etc / bash_completionは/etc/bash_completion.d/*などで拡張されました。/etc/xinetd.confや/ etc / apache2 / confを補足する/etc/xinetd.dなど、その規則のわずかなバリエーションが使用されることもあります。/etc/apache2/apache2.confを補完するd。しかし、それは同じ基本的な考え方です。

通常、*。dの規則を見ると、「これは、いくつかのサービスの構成にマージされる構成フラグメントの束を保持するディレクトリです」という意味です。


「.d」の理由であるパー​​ト2では、メインの構成ファイルの一部ではなく、構成の一部であるように、「分散」するのが最善の推測です。


8
意外なことですが、これは「ディレクトリ」、つまり「これが設定のディレクトリ部分」を支持していると思っていたでしょう。
greg0ire

2
明らかにそうです。なぜ誰かがこれを読んで、.d意味のある他の何かは私を超えていると結論付けるでしょう!しかし、このソースは、Unixの初期から存在していた規約を使用するという、あるコンテキストでのDebianの理論的根拠のみを示しています。このDebianメンテナーが意図的に単純化していたのか、それともDebianがこの慣行を発明したと本当に思ったのか疑問に思う必要があります。
underscore_d

11

ディレクトリ名の最後にある「.d」について話す場合、この答えは正しいです。「ディレクトリ」の単なるマーカーです。

デーモンを表す「syslogd」のようなファイル名の「d」と混同しないでください。バックグラウンドで実行されているコンピュータープロセス。

デーモンの親プロセスは、多くの場合(常にではありません)initプロセス(PID = 1)です。プロセスは通常、子プロセスをフォークしてから親プロセスをすぐに終了させることによりデーモンになり、initが子プロセスを採用します。これは、デーモンプロセスを制御するttyから分離するなど、他の操作が一般的に実行されるため、プロセスを多少簡略化したビューです。daemon(3)などの便利なルーチンは、その目的のために一部のUNIXシステムに存在します。


実際には、これらはディレクトリ名ではありません。
キース

@キース:おっと、私は彼がsyslogd「.d」で終わるディレクトリではなく、「d」で終わるファイルについて話すと間違って思った。すぐに編集します。
フィロマス

それは私が考えていたことですが、デーモン化しないプログラムの構成ディレクトリで頻繁に使用されていることがわかります。たとえばsysctl.dmodprobe.dそれは不適切な使用でしょうか?
ティムポスト

@Tim Post:上記の2つのコメント(およびキースの回答)を参照してください。すぐに回答を編集します。
フィロマス

編集(15 chr)
フィロマス

4

これはディレクトリ自体を意味するものではありません。基本的には、最後にディレクトリが存在することに.d注意してください(通常、これらはディレクトリ内にのみ存在することに注意してください/etc)。

これは、たとえばディストリビューションがユニバーサルデフォルトを含めることができるように設計されていますが、/etc/yum.confユーザーまたは他のパッケージが上書きされない安全な方法で独自のyum設定を追加する簡単な方法があります。

yumの例として...

RHEL5またはCentOS BoxでEPELの使用を開始する場合、デフォルトの構成を変更したりファイルの競合を引き起こしたりすることなく、/etc/yum.repos.dフォルダーに新しいリポジトリを構成できます(たとえば/etc/yum.repos.d/epel.repo)、またはファイルを自動的に作成するepel-releaseパッケージをインストールできます起こる必要はありません。

何が起こるかというと、ほとんどのプログラムは(/etc/yum.confたとえば)デフォルトの構成を読み取り、.d構成スニペットを含むフォルダーを実行中のプログラムに繰り返します。

それがあなたのためにそれを説明することを願っています。


+1、これは多くを説明していますが、...「d」文字の選択ではありません。
greg0ire

1
選択の説明が必要ですか?これは、時間の経過とともに開発された単なる慣習であり、FHSで定義されているわけではありませんが、LSB標準に含まれている可能性があります。私が思い出すように、クロンは最初の一人でした。(編集:実際にはinitだったでしょう)
ニュージャージー州

3

ファイルが.extどのタイプのファイル(一般に「拡張子」と呼ばれる)を指定する必要があるのと同じように、ディレクトリはファイルではなくディレクトリであること.dを示す必要がある場合があります。それがそのタイプです。デフォルトのls出力では、ディレクトリとファイルが視覚的に区別されないため、.dこのようなリストでそのタイプ(ディレクトリ)を表示するのは単なる古い規則です。


6
さらに、.d接尾辞は、同様の名前のファイルとの衝突を防ぎます。たとえば、構成ファイル/etc/apt/sources.list、および構成ファイルのディレクトリを作成できます/etc/apt/sources.list.d
jmtd

2
^私はそれが「追加」ではなく、そもそも大会のまさにその理由であると言っているところまで行きたいと思います。特に初期の頃、Unix / Linuxが物事に拡張機能を含める必要があることは決して貴重ではなかったので、これが正当な理由なしにまき散らされたのではないかと思います。
underscore_d

2

より一般的には、.dディレクトリ(/etc/httpd/conf.d、/etc/rc.d、/etc/being別の例)は、含まれているファイルが読み込まれ、使用されることを示します。指定されたパターンであり、何らかのマスターリストに明示的に追加する必要はありません。

したがって、*。repoの形式のファイルを/etc/yum.repos.dに追加すると、yumは実行時にこのファイルを使用し、構成のリスト/etc/yum.confに追加する必要はありません。* .confの形式のファイルを/etc/http/conf.dに追加すると、/ etc / httpd / conf / httpd.confに明示的に追加する必要なく、Apacheによって読み取られます。同様に、/ etc / init.dのファイルへのchkconfig、/ etc / cron.dのcronジョブ。


+1、しかし...上記と同じ発言。
greg0ire

1
@greg:回答を並べ替える方法はさまざまであるため、「上」と「下」は、他の回答を参照(コメント)するのに不十分な方法です。「最も古い」並べ替えと「最新の」並べ替えは、このような位置ベースの説明に対して反対の意味を生成します。
クリスジョンセン

@クリスジョンセン:これは私が実現したものですが、手遅れです。私はニュージャージー州の答えに対する私のコメントを参照していました。
greg0ire

1

私がいることを、思いますが、文書化することができない.dディレクトリが関連付けられていることを示しているDの aemon。

証拠は、これが少なくとももっともらしいことを示しています:

sudo find / -maxdepth 3 -name "*.d"

クモの巣の背後にある私の心の奥でいまだにガタガタと音を立てている古代のUnixの歴史の小さな奥深くのどこかで、これは正しい答えとして私に呼びかけます。恐竜が死に始め、manページがシステム上だけでなく、足で測定されたラックに物理的に保持される前に、最初の哺乳類が地球を歩き回ったときから来たのではないかと思います。


最後のせん妄に対する+1ですが、これはyum.repos.dにうまく適合しないと思います
...-greg0ire

</cobwebs>私は、.d関連するファイルと同様の名前のファイルからディレクトリを明確にすることが目的であることを示す答えが正しいものだと信じています。E-manとjlliagreを支持しました。
デニスウィリアムソン

質問は「「.d」の意味」であり、この「.d」が存在する理由について多くの説明を受けましたが、意味に関する答えを出した少数の人は情報源を引用しませんでした。個人的には、ディレクトリを意味すると思います。
greg0ire

1
yumはより最近の発明です。
デニスウィリアムソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.