디렉토리 이름의 .d는 무엇을 의미합니까?

디렉토리 이름의 .d는 무엇을 의미합니까?

나는 많은 디렉토리의 이름에 .d가 있다는 것을 알고 있습니다.

init.d
yum.repos.d
conf.d

디렉토리를 의미합니까? 그렇다면 이것은 어떤 모호성을 제거합니까?

고쳐 쓰다:그것이 의미하는 바에 대해 흥미로운 답변이 많이 있지만 .d질문 제목이 제대로 선택되지 않았습니다. "의미"를 "대표"로 바꾸었습니다.

답변1

여기서 접미사는 .d디렉토리를 나타냅니다. 물론 Unix에서는 파일 형식을 나타내는 접미사가 필요하지 않기 때문에 이는 필요하지 않습니다. 그러나 이 특별한 경우에는 명령( /etc/init, , /etc/rc0/etc/rc1)과 해당 명령이 사용하는 디렉터리( /etc/init.d, /etc/rc0.d, /etc/rc1.d, ..) 를 제거하기 위한 조치가 필요합니다.

이 규칙은 적어도 Unix System V에서 도입되었지만 아마도 더 일찍 도입되었을 것입니다. 이 init명령은 최신 System V 운영 체제에 있었지만 /etc이제는 일반적으로 사용됩니다./sbin

많은 애플리케이션이 이 규칙을 채택하여 단일 파일 구성 파일에서 단일 디렉터리에 있는 여러 구성 파일로 이동했습니다. 예를 들면 다음과 같습니다./etc/sudoers.d

다시 말하지만, 목표는 실행 파일과 구성 파일 간의 이름 충돌이 아니라 이전 전체 구성 파일과 이를 포함하는 디렉터리 간의 이름 충돌을 피하는 것입니다.

답변2

에서 발췌데비안 메일링 리스트(강조하다):

배포 패키지가 더욱 일반화됨에 따라 종종 여러 독립 패키지에서 제공되는 여러 조각으로 구성 파일을 구성하는 더 나은 방법이 필요하다는 것이 분명해졌습니다. 일부 공유 서비스를 구성해야 하는 각 패키지는 다른 패키지에서 사용하는 공유 구성 파일을 편집할 필요 없이 해당 구성만 관리할 수 있어야 합니다.

가장 일반적인 규칙은 구성 파일로 가득 찬 디렉터리를 허용하는 것입니다. 이 디렉터리에 있는 모든 항목은 활성화되고 구성의 일부가 됩니다. 이 규칙이 더욱 일반화됨에 따라 디렉토리 이름은 대체하거나 향상시키는 구성 파일의 이름을 따서 명명되는 경우가 많습니다. 그러나 디렉터리와 파일은 동일한 이름을 가질 수 없으므로 어떤 방식으로든 구분할 필요가 있으므로 구성 파일 이름 끝에 .d를 추가합니다. 따라서 구성 파일 /etc/Muttrc는 /etc/Muttrc.d의 조각으로 향상되고, /etc/bash_completion은 /etc/bash_completion.d/*로 향상됩니다. /etc/xinetd.conf를 보충하기 위해 /etc/xinetd.d를 사용하거나 /etc/apache2/apache2.conf를 보충하기 위해 /etc/apache2/conf.d와 같이 이 규칙의 약간의 변형이 때때로 사용됩니다. 그러나 그것은 동일한 기본 아이디어입니다.

일반적으로 *.d 규칙이 표시되면 "이것은 일부 서비스의 구성에 병합될 여러 구성 조각이 포함된 디렉터리입니다."를 의미합니다.


파트 2에서 ".d"의 이유는 다음과 같이 "분산"이라고 추측됩니다.기본 구성 파일의 일부는 아니지만 여전히 구성의 일부입니다..

답변3

디렉터리 이름 끝에 ".d"를 언급하면,이 답변예, 단지 "디렉토리" 태그일 뿐입니다.

"syslogd"와 같이 파일 이름 뒤의 "d"와 혼동하지 마십시오.악마. 백그라운드에서 실행되는 컴퓨터 프로세스입니다.

데몬의 상위 프로세스는 일반적으로 init 프로세스(PID=1)이지만 항상 그런 것은 아닙니다. 프로세스는 일반적으로 하위 프로세스를 분기한 다음 상위 프로세스를 즉시 종료하여 init가 하위 프로세스를 채택하도록 함으로써 데몬이 됩니다. 이는 제어 tty에서 데몬을 분리하는 등의 다른 작업이 일반적으로 수행되므로 프로세스를 약간 단순화한 보기입니다. daemon(3)과 같은 일부 UNIX 시스템에는 이 목적을 위한 편리한 루틴이 존재합니다.

답변4

보다 일반적으로, .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에 있습니다.

관련 정보