it-swarm-vi.com

Các .d là viết tắt của tên thư mục là gì?

Tôi biết nhiều thư mục với .d trong tên của họ:

init.d
yum.repos.d
conf.d

Nó có nghĩa là thư mục? Nếu có, điều này làm gì định hướng?

CẬP NHẬT : Tôi đã có nhiều câu trả lời thú vị về những gì .d có nghĩa, nhưng tiêu đề câu hỏi của tôi không được chọn tốt. Tôi đã thay đổi "có nghĩa" thành "đứng cho".

123
greg0ire

Các .d hậu tố ở đây có nghĩa là thư mục. Tất nhiên, điều này là không cần thiết vì Unix không yêu cầu hậu tố để biểu thị một loại tệp nhưng trong trường hợp cụ thể đó, cần có một cái gì đó để phân tán các lệnh (/etc/init, /etc/rc0, /etc/rc1 vân vân) và các thư mục họ sử dụng (/etc/init.d, /etc/rc0.d, /etc/rc1.d, ...)

Quy ước này được giới thiệu ít nhất với Unix System V nhưng có thể sớm hơn. Lệnh init được sử dụng để đặt trong /etc nhưng nói chung là bây giờ trong /sbin trên hệ điều hành V hệ thống hiện đại.

Lưu ý rằng quy ước này đã được thông qua bởi nhiều ứng dụng chuyển từ một tệp cấu hình tệp đơn sang nhiều tệp cấu hình nằm trong một thư mục, ví dụ: /etc/sudoers.d

Ở đây một lần nữa, mục tiêu là để tránh xung đột tên, không phải giữa tệp thực thi và tệp cấu hình mà là giữa tệp cấu hình nguyên khối trước đây và thư mục chứa chúng.

108
jlliagre

Trích từ một danh sách gửi thư Debian (nhấn mạnh thêm):

Khi bao bì phân phối ngày càng trở nên phổ biến, rõ ràng là chúng ta cần những cách tốt hơn để hình thành các tệp cấu hình như vậy từ nhiều mảnh, thường được cung cấp bởi nhiều gói độc lập. Mỗi gói cần cấu hình một số dịch vụ chia sẻ sẽ chỉ có thể quản lý cấu hình của nó mà không phải chỉnh sửa tệp cấu hình dùng chung được sử dụng bởi các gói khác.

Quy ước phổ biến nhất được thông qua là cho phép bao gồm một thư mục chứa đầy các tệp cấu hình, trong đó mọi thứ được thả vào thư mục đó sẽ trở thành hoạt động và là một phần của cấu hình đó. Khi quy ước đó trở nên phổ biến hơn, thư mục đó thường được đặt tên theo tệp cấu hình mà nó đang thay thế hoặc tăng thêm. Nhưng vì người ta không thể có một thư mục và một tệp có cùng tên, nên một số phương pháp được yêu cầu để phân biệt, do đó, .d đã được thêm vào cuối tên tệp cấu hình. Do đó, một tệp cấu hình/etc/Muttrc đã được tăng cường bởi các đoạn trong /etc/Muttrc.d,/etc/bash_completion đã được tăng cường bằng /etc/bash_completion.d/*, v.v. Đôi khi, các biến thể nhỏ trong quy ước đó được sử dụng, chẳng hạn như /etc/xinetd.d để bổ sung /etc/xinetd.conf hoặc /etc/Apache2/conf.d để bổ sung /etc/Apache2/Apache2.conf. Nhưng đó là cùng một ý tưởng cơ bản.

Nói chung khi bạn thấy quy ước * .d đó, có nghĩa là "đây là một thư mục chứa một loạt các đoạn cấu hình sẽ được hợp nhất với nhau thành cấu hình cho một số dịch vụ."


Đối với phần 2, lý do cho ".d", dự đoán tốt nhất của tôi sẽ là "phân phối", như trong không phải là một phần của tệp cấu hình chính, nhưng vẫn là một phần của cấu hình.

58
E-man

Nếu bạn nói về ".d" ở cuối tên thư mục, câu trả lời này là đúng, thì đó chỉ là một điểm đánh dấu cho "thư mục".

Đừng nhầm lẫn nó với "d" tại và tên tệp, như "syslogd", viết tắt của daemon . Một quá trình máy tính chạy trong nền.

tiến trình cha của một daemon thường (nhưng không phải luôn luôn) quá trình init (PID = 1). Các quy trình thường trở thành daemon bằng cách hủy bỏ một tiến trình con và sau đó tiến trình cha mẹ của chúng ngay lập tức thoát ra, do đó khiến init chấp nhận tiến trình con. Đây là một cái nhìn hơi đơn giản về quy trình vì các hoạt động khác thường được thực hiện, chẳng hạn như phân tách quá trình daemon khỏi bất kỳ tty kiểm soát nào. Các thói quen tiện lợi như daemon (3) tồn tại trong một số hệ thống UNIX cho mục đích đó.

12
Philomath

Nó không có nghĩa là thư mục mỗi se, về cơ bản những gì đang xảy ra là các thư mục kết thúc bằng .d (Lưu ý rằng những thư mục này thường chỉ có trong /etc), Lấy các phần cấu hình.

Ví dụ, điều này được thiết kế để các bản phân phối có thể bao gồm các mặc định phổ quát /etc/yum.conf, Nhưng sau đó, có một phương pháp dễ sử dụng cho người dùng hoặc các gói khác để nối các cấu hình yum của riêng họ theo cách an toàn sẽ không bị ghi đè.

Để làm ví dụ cho ...

Nếu tôi muốn bắt đầu sử dụng EPEL trên Hộp RHEL5 hoặc CentOS của mình, tôi có thể định cấu hình kho lưu trữ mới trong thư mục /etc/yum.repos.d, (Giả sử /etc/yum.repos.d/epel.repo) Hoặc cài đặt gói phát hành epel tạo tệp tự động, mà không sửa đổi cấu hình mặc định của tôi hoặc gây ra xung đột tệp không cần phải xảy ra.

Điều gì sẽ xảy ra, hầu hết các chương trình sẽ đọc cấu hình mặc định của chúng (ví dụ /etc/yum.conf) Và sau đó lặp lại các thư mục .d Của chúng bao gồm các đoạn cấu hình vào chương trình đang chạy.

Hy vọng nó giải thích nó cho bạn.

4
N J

Giống như các tập tin có thể có .ext để chỉ định loại tệp nào (thường được gọi là "phần mở rộng"), các thư mục đôi khi có .d để hiển thị đó là một thư mục chứ không phải tệp. Đó là kiểu của nó. Đầu ra ls mặc định không phân biệt trực quan các thư mục và tệp, vì vậy .d chỉ là một quy ước cũ để hiển thị loại (thư mục) trong danh sách đó.

3
Keith

Tổng quát hơn, các thư mục .d (/etc/httpd/conf.d, /etc/rc.d,/etc/là một ví dụ khác), chỉ ra rằng các tệp chứa trong đó sẽ được đọc và sử dụng, thường là cho cấu hình, nếu chúng khớp một mẫu nhất định và không yêu cầu được thêm rõ ràng vào một số danh sách chính.

Vì vậy, nếu bạn thêm các tệp có dạng * .repo vào /etc/yum.repos.d, yum sẽ sử dụng nó khi chạy mà không cần thêm nó vào danh sách cấu hình /etc/yum.conf. Nếu bạn thêm các tệp có dạng * .conf vào /etc/http/conf.d, chúng sẽ được đọc bởi Apache mà không cần phải được thêm rõ ràng vào /etc/httpd/conf/httpd.conf. Tương tự, chkconfig tới các tệp trong /etc/init.d, các công việc cron trong /etc/cron.d.

2
Tim

Tôi nghĩ, nhưng không thể tài liệu, rằng .d chỉ ra rằng thư mục được liên kết với một daemon.

Bằng chứng sẽ chỉ ra rằng điều này ít nhất là hợp lý:

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

Đâu đó trong sự suy thoái sâu sắc của những mảnh nhỏ của lịch sử Unix cổ xưa vẫn còn ầm ầm trong tâm trí tôi đằng sau mạng nhện, đây gọi tôi là câu trả lời chính xác. Tôi tin rằng nó có thể xuất phát từ thời điểm những động vật có vú đầu tiên lang thang trên trái đất trước khi khủng long bắt đầu chết và các trang man không chỉ được giữ trên hệ thống mà còn ở các giá đỡ được đo bằng chân.