Znam wiele katalogów z rozszerzeniem .d w ich nazwie:
init.d
yum.repos.d
conf.d
Czy to oznacza katalog? Jeśli tak, to z czego to jednoznacznie wynika?
AKTUALIZACJA: Miałem wiele interesujących odpowiedzi na temat tego, co to .d
znaczy, ale tytuł mojego pytania nie został dobrze wybrany. Zmieniłem „znaczy” na „oznaczać”.
.d
znajduje się w komentarzu msw do tego powiązanego pytania w Ask Ubuntu ..d
sięinit.d
, ale to wydaje się prawie wszystkie niestandardowe pliki konfiguracyjne przejść do.d
katalogów w RHEL / CentOS / Fedory.Odpowiedzi:
.d
Przyrostek oznacza tu katalog. Oczywiście, byłoby to niepotrzebne, gdyż nie wymaga Unix przyrostek oznaczający typ pliku, ale w tym konkretnym przypadku, coś trzeba było dwuznaczności poleceń (/etc/init
,/etc/rc0
,/etc/rc1
i tak dalej) i katalogów używają (/etc/init.d
,/etc/rc0.d
,/etc/rc1.d
,. ..)Konwencję tę wprowadzono przynajmniej w systemie Unix System V, ale prawdopodobnie wcześniej.
init
Polecenie używane do umieszczenia w/etc
ale ogólnie jest teraz w/sbin
nowoczesnych systemów operacyjnych System V.Należy zauważyć, że ta konwencja została przyjęta przez wiele aplikacji przechodzących z jednego pliku konfiguracyjnego do wielu plików konfiguracyjnych znajdujących się w jednym katalogu, np .:
/etc/sudoers.d
Tutaj znowu celem jest uniknięcie kolizji nazw, nie między plikiem wykonywalnym a plikiem konfiguracyjnym, ale między poprzednim monolitycznym plikiem konfiguracyjnym a katalogiem zawierającym je.
źródło
ls
polecenie (niels -al
) bez użycia--color
opcji (wyraźnie określonej lub częściLS_OPTIONS
zmiennej środowiskowej), posiadanie „.d” wyróżnia katalogi na liście. Dlatego zawsze myślałem, że to zrobione.color
nie jest jedynym lub najlepszym sposobem wizualnego oflagowania katalogów.ls -F
zrobi to i wiele innych przydatnych rzeczy.Fragment listy mailingowej Debiana (wyróżnienie dodane):
Jeśli chodzi o część 2, przyczynę „.d”, to moje przypuszczenie byłoby „rozproszone”, ponieważ nie jest to część głównego pliku konfiguracyjnego, ale nadal część konfiguracji .
źródło
.d
cokolwiek innego znaczyło poza mną! Ale to źródło pokazuje tylko uzasadnienie Debiana dla, w jednym kontekście, zastosowania konwencji, która istniała od pierwszych dni istnienia Uniksa. Zastanawiam się, czy ten opiekun Debiana celowo uprościł - czy naprawdę myślał, że Debian wynalazł tę praktykę.Jeśli mówisz o „.d” na końcu nazw katalogów, ta odpowiedź jest słuszna, to tylko znacznik „katalogów”.
Po prostu nie myl go z „d” na końcu nazwy pliku, np. „Syslogd”, co oznacza demona . Proces komputerowy uruchomiony w tle.
źródło
syslogd
, a nie katalogach kończących się na „.d”. Wkrótce dokonam edycji.sysctl.d
,modprobe.d
.. byłoby to niewłaściwe wykorzystanie?Nie oznacza to katalogu jako takiego, w zasadzie dzieje się tak, że katalogi, które kończą się na
.d
(pamiętaj, że zwykle są tylko w środku/etc
), biorą części konfiguracyjne.Zostało to zaprojektowane tak, aby dystrybucje mogły zawierać na przykład uniwersalne ustawienia domyślne
/etc/yum.conf
, ale istnieje też łatwa w użyciu metoda dla użytkowników lub innych pakietów, aby bezpiecznie dołączyć własne konfiguracje yum w bezpieczny sposób, który nie zostanie nadpisany.Jako przykład dla mniam ...
Jeśli chciałbym zacząć korzystać z EPEL na moim RHEL5 lub CentOS Box, mogę skonfigurować nowe repozytorium w
/etc/yum.repos.d
folderze (powiedzmy/etc/yum.repos.d/epel.repo
) lub zainstalować pakiet epel-release, który tworzy plik automatycznie, bez modyfikowania mojej domyślnej konfiguracji ani powodowania konfliktów plików, które nie musi się zdarzyć.Co się stanie, większość programów przeczyta swoją domyślną konfigurację (
/etc/yum.conf
na przykład), a następnie przejdzie przez.d
foldery, w tym fragmenty konfiguracji do uruchomionego programu.Mam nadzieję, że to ci wyjaśni.
źródło
Podobnie jak pliki mogą
.ext
określać typ pliku (zwykle nazywany „rozszerzeniem”), katalogi czasami muszą.d
pokazywać, że jest to katalog, a nie plik. To jest ten typ. Domyślnels
wyjście nie wizualnie różnicuje katalogów i plików, więc.d
jest to tylko stara konwencja pokazująca swój typ (katalog) na takich listach.źródło
.d
sufiks zapobiega kolizjom z plikiem o podobnej nazwie. Na przykład możesz mieć plik konfiguracyjny/etc/apt/sources.list
i katalog plików konfiguracyjnych/etc/apt/sources.list.d
.Mówiąc bardziej ogólnie, katalogi .d (/etc/httpd/conf.d, /etc/rc.d, / etc / są kolejnym przykładem), wskazują, że zawarte pliki zostaną odczytane i wykorzystane, często do konfiguracji, jeśli są zgodne dany wzorzec i nie wymagają jawnego dodawania do niektórych list głównych.
Więc jeśli dodasz pliki w postaci * .repo do /etc/yum.repos.d, yum użyje go podczas uruchamiania bez potrzeby dodawania go do listy konfiguracji /etc/yum.conf. Jeśli dodasz pliki w postaci * .conf do /etc/http/conf.d, zostaną one odczytane przez Apache bez konieczności jawnego dodawania do /etc/httpd/conf/httpd.conf. Podobnie, chkconfig do plików w /etc/init.d, zadania cron w /etc/cron.d.
źródło
Myślę, ale nie mogę udokumentować, że
.d
wskazuje, że katalog jest powiązany z demonem d .Dowody wskazują, że jest to co najmniej prawdopodobne:
Gdzieś w głębokich zakamarkach małych fragmentów starożytnej historii uniksowej wciąż grzechotających w moich myślach za pajęczynami, to woła mnie jako prawidłową odpowiedź. Myślę, że mogło to pochodzić z czasów, gdy pierwsze ssaki wędrowały po ziemi, zanim dinozaury zaczęły wymierać, a
man
strony były nie tylko trzymane w systemie, ale także fizycznie w stojakach mierzonych stopą.źródło
</cobwebs>
Uważam, że odpowiedzi wskazujące, że celem.d
jest ujednoznacznienie katalogu z powiązanych i podobnie nazwanych plików, są poprawne. Poparłem głos E-mana i Jlliagre'a.yum
jest nowszym wynalazkiem.