it-swarm-id.com

Apa singkatan dari .d dalam nama direktori?

Saya tahu banyak direktori dengan .d dalam nama mereka:

init.d
yum.repos.d
conf.d

Apakah ini berarti direktori? Jika ya, dari apa ini ambigu?

PDATE: Saya punya banyak jawaban menarik tentang apa .d Berarti, tetapi judul pertanyaan saya tidak dipilih dengan baik. Saya mengubah "berarti" menjadi "berdiri untuk".

123
greg0ire

.d akhiran di sini berarti direktori. Tentu saja, ini tidak perlu karena Unix tidak memerlukan akhiran untuk menunjukkan tipe file tetapi dalam kasus tertentu, ada sesuatu yang diperlukan untuk mengacaukan perintah (/etc/init, /etc/rc0, /etc/rc1 dan seterusnya) dan direktori yang mereka gunakan (/etc/init.d, /etc/rc0.d, /etc/rc1.d, ...)

Konvensi ini diperkenalkan setidaknya dengan Unix System V tetapi mungkin sebelumnya. Perintah init dulu berlokasi di /etc tetapi umumnya sekarang dalam /sbin pada Sistem V OS modern.

Perhatikan bahwa konvensi ini telah diadopsi oleh banyak aplikasi yang bergerak dari satu file konfigurasi file ke beberapa file konfigurasi yang terletak di satu direktori, misalnya: /etc/sudoers.d

Di sini sekali lagi, tujuannya adalah untuk menghindari perselisihan nama, bukan antara file yang dapat dieksekusi dan konfigurasi tetapi antara file konfigurasi monolitik sebelumnya dan direktori yang berisi mereka.

108
jlliagre

Kutipan dari milis Debian (penekanan ditambahkan):

Ketika kemasan distribusi menjadi semakin umum, menjadi jelas bahwa kami membutuhkan cara yang lebih baik untuk membentuk file konfigurasi seperti itu dari beberapa fragmen, sering kali disediakan oleh beberapa paket independen. Setiap paket yang perlu mengkonfigurasi beberapa layanan bersama harus dapat mengelola hanya konfigurasinya tanpa harus mengedit file konfigurasi bersama yang digunakan oleh paket lain.

Konvensi yang paling umum diadopsi adalah untuk mengizinkan termasuk direktori yang penuh dengan file konfigurasi, di mana apa pun yang masuk ke direktori itu akan menjadi aktif dan bagian dari konfigurasi itu. Ketika konvensi itu menjadi lebih luas, direktori itu biasanya dinamai sesuai dengan file konfigurasi yang diganti atau diperbesar. Tetapi karena seseorang tidak dapat memiliki direktori dan file dengan nama yang sama, beberapa metode diperlukan untuk membedakan, jadi .d ditambahkan ke akhir nama file konfigurasi. Oleh karena itu, file konfigurasi/etc/Muttrc ditambah oleh fragmen di /etc/Muttrc.d,/etc/bash_completion ditambah dengan /etc/bash_completion.d/*, dan sebagainya. Terkadang sedikit variasi pada konvensi yang digunakan, seperti /etc/xinetd.d untuk menambah /etc/xinetd.conf, atau /etc/Apache2/conf.d untuk menambah /etc/Apache2/Apache2.conf. Tapi itu ide dasar yang sama.

Secara umum ketika Anda melihat bahwa konvensi * .d, itu berarti "ini adalah direktori yang menyimpan sekelompok fragmen konfigurasi yang akan digabungkan menjadi konfigurasi untuk beberapa layanan."


Untuk bagian 2, alasan ".d", tebakan terbaik saya adalah "terdistribusi", seperti pada bukan bagian dari file konfigurasi utama, tetapi masih bagian dari konfigurasi.

58
E-man

Jika Anda berbicara tentang ".d" di akhir nama direktori, jawaban ini benar, itu hanya penanda untuk "direktori".

Hanya saja jangan bingung dengan "d" di dan dari nama file, seperti "syslogd", yang merupakan singkatan daemon . Proses komputer berjalan di latar belakang.

proses induk daemon sering (tetapi tidak selalu) proses init (PID = 1). Proses biasanya menjadi daemon dengan memroses proses anak dan kemudian proses orang tua mereka segera keluar, sehingga menyebabkan init untuk mengadopsi proses anak. Ini adalah pandangan yang agak disederhanakan dari proses karena operasi lain umumnya dilakukan, seperti memisahkan proses daemon dari sembarang pengendali tty. Kenyamanan rutin seperti daemon (3) ada di beberapa sistem UNIX untuk tujuan itu.

12
Philomath

Itu tidak berarti direktori per se, pada dasarnya yang terjadi adalah direktori yang berakhiran .d (perhatikan ini biasanya hanya di /etc), ambil bagian konfigurasi.

Ini dirancang agar distro dapat menyertakan standar universal misalnya /etc/yum.conf, tetapi kemudian ada metode yang mudah digunakan untuk pengguna atau paket lain untuk menambahkan konfigurasi yum mereka sendiri dengan cara yang aman yang tidak akan ditimpa.

Sebagai contoh untuk yum ...

Jika saya ingin mulai menggunakan EPEL pada RHEL5 atau CentOS Box saya, saya bisa mengonfigurasi repositori baru di /etc/yum.repos.d folder, (katakan /etc/yum.repos.d/epel.repo) atau instal paket rilis-epel yang membuat file secara otomatis, tanpa mengubah konfigurasi default saya atau menyebabkan konflik file yang tidak perlu terjadi.

Apa yang akan terjadi, adalah sebagian besar program akan membaca konfigurasi default mereka (/etc/yum.conf misalnya) dan kemudian iterate atas .d folder termasuk cuplikan konfigurasi ke dalam program yang sedang berjalan.

Semoga ini menjelaskannya untuk Anda.

4
N J

Sama seperti file dapat memiliki .ext untuk menentukan jenis file apa itu (biasanya disebut "ekstensi"), direktori terkadang memiliki .d untuk menunjukkan itu adalah direktori dan bukan file. Itu tipenya. Output ls default tidak secara visual membedakan direktori dan file, jadi .d hanyalah sebuah konvensi lama untuk menunjukkan tipenya (direktori) dalam daftar tersebut.

3
Keith

Secara umum, direktori .d (/etc/httpd/conf.d, /etc/rc.d,/etc/menjadi contoh lain), menunjukkan bahwa file yang terkandung akan dibaca dan digunakan, sering untuk konfigurasi, jika sesuai pola yang diberikan dan tidak perlu ditambahkan secara eksplisit ke beberapa daftar induk.

Jadi, jika Anda menambahkan file dari bentuk * .repo ke /etc/yum.repos.d, yum akan menggunakannya saat berjalan tanpa perlu menambahkannya ke daftar konfigurasi /etc/yum.conf. Jika Anda menambahkan file dari bentuk * .conf ke /etc/http/conf.d, mereka akan dibaca oleh Apache tanpa perlu ditambahkan secara eksplisit ke /etc/httpd/conf/httpd.conf. Demikian pula, chkconfig ke file di /etc/init.d, tugas cron di /etc/cron.d.

2
Tim

Saya pikir, tetapi tidak dapat mendokumentasikan, bahwa .d menunjukkan bahwa direktori tersebut terkait dengan a daemon.

Bukti akan menunjukkan bahwa ini setidaknya masuk akal:

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

Di suatu tempat di ceruk yang dalam dari potongan-potongan kecil sejarah Unix kuno masih berputar-putar di belakang pikiran saya di belakang sarang laba-laba, ini memanggil saya sebagai jawaban yang benar. Saya percaya itu mungkin berasal dari masa ketika mamalia pertama berkeliaran di bumi sebelum dinosaurus mulai mati dan man halaman tidak hanya disimpan pada sistem tetapi juga secara fisik di rak yang diukur dengan kaki.