it-swarm-tr.com

.D dizin adlarında ne anlama geliyor?

Onların adında .d olan birçok dizin biliyorum:

init.d
yum.repos.d
conf.d

Dizin anlamına mı geliyor? Cevabınız evet ise, bu neyi belirsizleştiriyor?

GÜNCELLEME:.d anlamına gelir, ancak sorumun başlığı iyi seçilmiş değildi. "Ortalama" kelimesini "temsil" olarak değiştirdim.

123
greg0ire

.d soneki burada dizin anlamına gelir. Elbette, Unix bir dosya türünü belirtmek için bir sonek gerektirmediğinden, ancak bu özel durumda, komutları netleştirmek için bir şey gerekli olduğundan bu gereksiz olurdu (/etc/init, /etc/rc0, /etc/rc1 vb.) ve kullandıkları dizinleri (/etc/init.d, /etc/rc0.d, /etc/rc1.d, ...)

Bu sözleşme en azından Unix System V ile ama muhtemelen daha önce yapılmıştır. init komutu eskiden /etc ancak şimdi /sbin Modern Sistem V İşletim Sistemlerinde.

Bu kuralın, tek bir dosya yapılandırma dosyasından tek bir dizinde bulunan birden fazla yapılandırma dosyasına taşınan birçok uygulama tarafından kabul edildiğini, örneğin: /etc/sudoers.d

Burada da amaç, yürütülebilir dosya ile yapılandırma dosyası arasında değil, eski yekpare yapılandırma dosyası ile bunları içeren dizin arasında ad çakışmasından kaçınmaktır.

108
jlliagre

Debian posta listesinden (vurgu eklendi):

Dağıtım ambalajı gittikçe yaygınlaştığında, bu tür yapılandırma dosyalarını genellikle birden fazla bağımsız paket tarafından sağlanan birden fazla parçadan oluşturmanın daha iyi yollarına ihtiyacımız olduğu anlaşıldı. Bazı paylaşılan hizmetleri yapılandırması gereken her paket, diğer paketler tarafından kullanılan bir paylaşılan yapılandırma dosyasını düzenlemek zorunda kalmadan yalnızca yapılandırmasını yönetebilmelidir.

Kabul edilen en yaygın kural, bu dizine bırakılan her şeyin etkin hale geleceği ve bu yapılandırmanın bir parçası olacağı yapılandırma dosyalarıyla dolu bir dizinin dahil edilmesine izin vermektir. Bu kural yaygınlaştıkça, bu dizin genellikle değiştirildiği veya artırdığı yapılandırma dosyasının adını almıştır. Ancak, bir dizin ve aynı ada sahip bir dosyaya sahip olamadığından, ayırt etmek için bazı yöntemlere ihtiyaç duyuldu, bu nedenle yapılandırma dosyası adının sonuna .d eklendi. Bu nedenle, /etc/Muttrc.d içindeki/etc/Muttrc bir yapılandırma dosyası artırıldı,/etc/bash_completion /etc/bash_completion.d/*, vb. İle artırıldı. Bazen bu kuralda /etc/xinetd.conf'u desteklemek için /etc/xinetd.d veya /etc/Apache2/Apache2.conf'u desteklemek için /etc/Apache2/conf.d gibi küçük değişiklikler kullanılır. Ama aynı temel fikir.

Genellikle * .d kuralını gördüğünüzde, "bu, bir grup hizmet için yapılandırmayla birleştirilecek bir grup yapılandırma parçasını tutan bir dizindir."


Bölüm 2 için, ".d" nin nedeni, en iyi tahminimin "dağıtılmış" olacağı gibi, ana yapılandırma dosyasının bir parçası değil, yine de yapılandırmanın bir parçası .

58
E-man

Dizin adlarının sonunda ".d" hakkında konuşursanız, bu yanıt doğrudur, bu sadece "dizin" için bir işaretleyicidir.

Sadece daemon anlamına gelen "syslogd" gibi bir dosya adında "d" ile karıştırmayın. Arka planda çalışan bir bilgisayar işlemi.

bir arka plan programının üst süreci genellikle (her zaman değil) başlatma sürecidir (PID = 1). Süreçler genellikle bir çocuk sürecini çatallayarak ve daha sonra ana süreçlerinin derhal çıkmasını sağlayarak, böylece initin çocuk sürecini benimsemesine neden olurlar. Bu daemon sürecini herhangi bir kontrol tty'den ayırmak gibi diğer işlemler genellikle gerçekleştirildiği için sürecin biraz basitleştirilmiş bir görünümüdür. Bu amaçla bazı UNIX sistemlerinde daemon (3) gibi kolaylık rutinleri bulunur.

12
Philomath

Kendi başına dizin anlamına gelmez, temelde olan şey, .d İle biten dizinlerin (bunların genellikle /etc İçinde olduğunu unutmayın) yapılandırma parçalarını almasıdır.

Bu dağıtımlar, örneğin /etc/yum.conf İçindeki evrensel varsayılanları içerebilecek şekilde tasarlanmıştır, ancak kullanıcıların veya diğer paketlerin üzerine yazılmayacak güvenli bir şekilde kendi yum yapılandırmalarını eklemeleri için kullanımı kolay bir yöntem vardır.

Yum için örnek olarak ...

RHEL5 veya CentOS Box'ımda EPEL kullanmaya başlamak istersem, /etc/yum.repos.d Klasöründe yeni bir depo yapılandırabilirim (/etc/yum.repos.d/epel.repo Diyelim) veya dosyayı oluşturan epel-release paketini kurabilirim otomatik olarak, varsayılan yapılandırmamı değiştirmeden veya gerçekleşmesi gerekmeyen dosya çakışmalarına neden olmadan.

Ne olacak, çoğu program varsayılan yapılandırmalarını (örneğin /etc/yum.conf) Okuyacak ve daha sonra yapılandırma snippet'lerini içeren .d Klasörlerini çalışan programa yineleyecektir.

Umarım sizin için açıklar.

4
N J

Tıpkı dosyaların .ext dosya türünü belirtmek için (genellikle "uzantı" olarak adlandırılır), dizinlerde bazen .d olduğunu göstermek için bir dizin değil dosya. Bu onun tipi. Varsayılan ls çıktısı dizinleri ve dosyaları görsel olarak ayırt etmez, bu nedenle .d, bu tür listelerde türünü (dizinini) gösteren eski bir kuraldır.

3
Keith

Daha genel olarak, .d dizinleri (/etc/httpd/conf.d, /etc/rc.d,/etc/başka bir örnek olarak), içerilen dosyaların genellikle eşleşmeleri durumunda yapılandırma için okunacağını ve kullanılacağını belirtir. verilen bir kalıptır ve bazı ana listelere açıkça eklenmesini gerektirmez.

Bu nedenle, * .repo biçiminde /etc/yum.repos.d dosyasına dosyalar eklerseniz, yum, /etc/yum.conf yapılandırma listesine eklemeye gerek kalmadan çalıştırırken onu kullanır. * .Conf biçimindeki dosyaları /etc/http/conf.d dosyasına eklerseniz, /etc/httpd/conf/httpd.conf dosyasına açıkça eklenmesine gerek kalmadan Apache tarafından okunur. Benzer şekilde, /etc/init.d içindeki dosyalara chkconfig, /etc/cron.d içindeki cron işleri.

2
Tim

Bence, ama belgeleyemiyorum, .d, dizinin bir daemon.

Kanıtlar bunun en azından makul olduğunu gösterecektir:

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

Eski Unix tarihinin küçük parçalarının derin girintilerinde bir yerlerde hala kafamın arkasında örümcek ağlarının arkasında dolaşıyor, bu bana doğru cevap olarak geliyor. İlk memelilerin dinozorlar ölmeye başlamadan önce dünyayı dolaştıklarından ve man sayfalarının sadece sistemde değil, aynı zamanda fiziksel olarak ayak tarafından ölçülen raflarda da tutulduğuna inanıyorum.