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?
UPDATE: Saya punya banyak jawaban menarik tentang apa .d
artinya, tetapi judul pertanyaan saya tidak dipilih dengan baik. Saya mengubah "berarti" menjadi "berdiri untuk".
.d
, lihat komentar msw tentang pertanyaan terkait ini di Ask Ubuntu ..d
masukinit.d
, tetapi tampaknya hampir semua file konfigurasi khusus masuk ke.d
direktori di RHEL / CentOS / Fedora.Jawaban:
The
.d
akhiran sini berarti direktori. Tentu saja, ini tidak perlu dilakukan karena Unix tidak memerlukan akhiran untuk menunjukkan jenis file tapi dalam kasus tertentu, ada sesuatu yang diperlukan untuk disambiguate perintah (/etc/init
,/etc/rc0
,/etc/rc1
dan sebagainya) 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. The
init
Perintah yang digunakan untuk berada di/etc
tetapi pada umumnya sekarang di/sbin
atas OS System V 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.
sumber
ls
perintah (bukanls -al
) tanpa menggunakan--color
opsi (baik ditentukan secara eksplisit atau bagian dariLS_OPTIONS
variabel lingkungan), memiliki ".d" membuat direktori menonjol dari daftar. Itu sebabnya saya selalu berpikir itu dilakukan.color
bukan satu-satunya, atau cara terbaik, untuk menandai direktori secara visual.ls -F
akan melakukan itu dan banyak hal berguna lainnya.Kutipan dari milis Debian (penekanan ditambahkan):
Untuk bagian 2, alasan untuk ".d", tebakan terbaik saya akan "didistribusikan", karena bukan bagian dari file konfigurasi utama, tetapi masih bagian dari konfigurasi .
sumber
.d
dimaksud selain saya! Tetapi sumber ini hanya menunjukkan alasan Debian untuk, dalam satu konteks, menggunakan konvensi yang ada sejak awal Unix. Saya harus bertanya-tanya apakah pemelihara Debian ini sengaja menyederhanakan - atau benar-benar berpikir Debian menemukan praktik ini.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 dari daemon . Proses komputer berjalan di latar belakang.
sumber
syslogd
, bukan direktori yang diakhiri dengan ".d". Saya akan segera mengedit.sysctl.d
,modprobe.d
.. akan yang menjadi penggunaan yang tidak?Itu tidak berarti direktori per se, pada dasarnya yang terjadi adalah direktori yang berakhir
.d
(perhatikan ini biasanya hanya pernah ada/etc
), ambil bagian konfigurasi.Ini dirancang agar distro dapat menyertakan standar universal
/etc/yum.conf
, misalnya , 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 dapat mengonfigurasi repositori baru di
/etc/yum.repos.d
folder, (misalnya/etc/yum.repos.d/epel.repo
) atau menginstal 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 beralih ke.d
folder mereka termasuk potongan konfigurasi ke dalam program yang sedang berjalan.Semoga ini menjelaskannya untuk Anda.
sumber
Sama seperti file yang harus
.ext
menentukan jenis file itu (biasanya disebut "ekstensi"), direktori terkadang harus.d
menunjukkan itu direktori dan bukan file. Itu tipenya.ls
Output default tidak secara visual membedakan direktori dan file, jadi.d
ini hanyalah konvensi lama untuk menunjukkan tipenya (direktori) dalam daftar tersebut.sumber
.d
sufiks mencegah tabrakan dengan file dengan nama yang sama. Misalnya, Anda dapat memiliki file konfigurasi/etc/apt/sources.list
, dan direktori file konfigurasi/etc/apt/sources.list.d
.Secara umum, direktori .d (/etc/httpd/conf.d, /etc/rc.d, / etc / menjadi contoh lain), menunjukkan bahwa file yang terkandung akan dibaca dan digunakan, seringkali 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.
sumber
Saya pikir, tetapi tidak dapat mendokumentasikan, bahwa
.d
menunjukkan bahwa direktori dikaitkan dengan d aemon.Bukti akan menunjukkan bahwa ini setidaknya masuk akal:
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.sumber
</cobwebs>
Saya percaya jawaban yang menunjukkan bahwa tujuan dari.d
ini adalah untuk mendisambiguasikan direktori dari file yang terkait dan bernama yang sama adalah yang benar. Saya telah membatalkan E-man dan jlliagre.yum
adalah penemuan yang lebih baru.