it-swarm-ru.tech

Что означает .d в именах каталогов?

Я знаю много каталогов с именем .d:

init.d
yum.repos.d
conf.d

Это значит каталог? Если да, то с чем это связано?

ОБНОВЛЕНИЕ: У меня было много интересных ответов о том, что .d означает, но название моего вопроса не было правильно выбрано. Я изменил "значит" на "стоять".

123
greg0ire

.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.

Обратите внимание, что это соглашение было принято многими приложениями, переходящими из одного файла конфигурации файла в несколько файлов конфигурации, расположенных в одном каталоге, например: /etc/sudoers.d

Здесь опять-таки цель состоит в том, чтобы избежать конфликта имен не между исполняемым файлом и файлом конфигурации, а между бывшим монолитным файлом конфигурации и каталогом, в котором они содержатся.

108
jlliagre

Выдержка из список рассылки Debian (выделено):

Когда дистрибутивная упаковка стала более распространенной, стало ясно, что нам нужны лучшие способы формирования таких файлов конфигурации из нескольких фрагментов, часто предоставляемых несколькими независимыми пакетами. Каждый пакет, которому необходимо настроить какую-либо общую службу, должен иметь возможность управлять только своей конфигурацией без необходимости редактирования общего файла конфигурации, используемого другими пакетами.

Наиболее распространенным принятым соглашением было разрешить включение каталога, полного файлов конфигурации, когда все, что помещено в этот каталог, станет активным и станет частью этой конфигурации. Поскольку это соглашение стало более распространенным, этот каталог обычно назывался в честь файла конфигурации, который он заменял или дополнял. Но поскольку нельзя иметь каталог и файл с одинаковым именем, для различения требовался какой-то метод, поэтому .d был добавлен в конец имени файла конфигурации. Следовательно, файл конфигурации/etc/Muttrc был дополнен фрагментами в /etc/Muttrc.d,/etc/bash_completion был дополнен /etc/bash_completion.d/* и так далее. Иногда используются небольшие изменения в этом соглашении, такие как /etc/xinetd.d для дополнения /etc/xinetd.conf или /etc/Apache2/conf.d для дополнения /etc/Apache2/Apache2.conf. Но это та же самая основная идея.

Обычно, когда вы видите это * .d соглашение, это означает, что "это каталог, содержащий кучу фрагментов конфигурации, которые будут объединены в конфигурацию для некоторого сервиса."


Для части 2, причина для ".d", моя лучшая догадка была бы "распределена", как в не часть основного файла конфигурации, но все еще часть конфигурации.

58
E-man

Если вы говорите о ".d" в конце имени каталога, этот ответ верно, это просто маркер для "каталога".

Только не путайте его с "d" в имени и имени файла, например "syslogd", что означает daemon . Компьютерный процесс работает в фоновом режиме.

родительский процесс демона часто (но не всегда) является процессом init (PID = 1). Процессы обычно становятся демонами, разветвляя дочерний процесс, а затем немедленно завершая его родительский процесс, в результате чего init принимает дочерний процесс. Это несколько упрощенное представление о процессе, поскольку обычно выполняются другие операции, такие как отделение процесса-демона от любого управляющего tty. Для этой цели в некоторых системах UNIX существуют удобные процедуры, такие как daemon (3).

12
Philomath

Это не означает каталог как таковой, в основном происходит то, что каталоги заканчиваются на .d (обратите внимание, что они обычно только в /etc), взять детали конфигурации.

Это сделано для того, чтобы дистрибутивы могли включать универсальные значения по умолчанию, например, /etc/yum.conf, но для пользователей или других пакетов существует простой способ добавления собственных конфигураций yum безопасным способом, который не будет перезаписан.

Как пример для ням ...

Если я хочу начать использовать EPEL на своем RHEL5 или CentOS Box, я могу настроить новый репозиторий в /etc/yum.repos.d папка, (скажем /etc/yum.repos.d/epel.repo) или установите пакет epel-release, который автоматически создает файл, не изменяя мою конфигурацию по умолчанию и не вызывая конфликты файлов, которые не должны возникать.

Что произойдет, большинство программ будет читать их конфигурацию по умолчанию (/etc/yum.conf например), а затем перебрать их .d папки, включая фрагменты конфигурации, в работающую программу.

Надеюсь, это объясняет это для вас.

4
N J

Также как файлы могут иметь .ext чтобы указать тип файла (обычно называемый "расширением"), каталоги иногда имеют .d чтобы показать, что это каталог, а не файл. Это его тип. Вывод ls по умолчанию не позволяет визуально различать каталоги и файлы, поэтому .d - это просто старое соглашение, показывающее его тип (каталог) в таких списках.

3
Keith

В более общем смысле, каталоги .d (другой пример - /etc/httpd/conf.d, /etc/rc.d,/etc /) указывают, что содержащиеся в них файлы будут читаться и использоваться, часто для конфигурации, если они совпадают. данный шаблон и не требует явного добавления в какой-либо основной список.

Поэтому, если вы добавите файлы вида * .repo в /etc/yum.repos.d, yum будет использовать их при запуске, не добавляя их в список конфигураций /etc/yum.conf. Если вы добавите файлы вида * .conf в /etc/http/conf.d, они будут прочитаны Apache без необходимости явного добавления в /etc/httpd/conf/httpd.conf. Аналогично, chkconfig для файлов в /etc/init.d, cron заданий в /etc/cron.d.

2
Tim

Я думаю, но не могу документально подтвердить, что .d указывает, что каталог связан с daemon.

Доказательства указывают на то, что это по крайней мере правдоподобно:

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

Где-то в глубоких зарослях маленьких кусочков древней истории Unix, все еще гремящих в глубине моего сознания за паутиной, это вызывает у меня правильный ответ. Я полагаю, что это могло произойти со времени, когда первые млекопитающие бродили по земле до того, как динозавры начали вымирать, и man страницы были не только сохранены в системе, но и физически в стойках, измеряемых ногой.

1
Paused until further notice.