Có tài liệu chính thức về các thư mục như ~ / .config và ~ / .cache không?


13

Tôi đã thấy các thư mục này đang được nhiều ứng dụng sử dụng và hiện đang xem xét sử dụng chúng cho ứng dụng của tôi. Làm thế nào để tôi biết đây là một thư mục được hỗ trợ chính thức và không chỉ là hương vị của vị trí tháng cho bộ nhớ cache / cấu hình cho mỗi người dùng?

Tôi đã Googling và tìm kiếm một cái gì đó chính thức từ Ubuntu nhưng vô ích, có thể người khác biết các thuật ngữ tìm kiếm hoặc vị trí thích hợp của tài liệu này. Đây có phải là một cái gì đó tôi chỉ nên chấp nhận như là một địa điểm thực hành tiêu chuẩn không nêu?


"Có thể người khác biết các thuật ngữ tìm kiếm phù hợp": Tôi không chắc chắn về tài liệu chính thức cho việc sử dụng của họ nhưng chúng được coi là dotfiles, cụ thể hơn là các thư mục dấu chấm trong các ví dụ đó. Chúng được ẩn theo mặc định và thường được sử dụng để lưu tùy chọn người dùng (~ / .config) và các tệp "hỗ trợ" khác như bộ đệm (~ / .cache).
Nmath

2
"Chính thức từ Ubuntu" sai chỗ. Nó được định nghĩa bởi tổ chức freedesktop phụ thuộc rất nhiều. Không chỉ Ubuntu. Oh và đây là những HƯỚNG DẪN.
Rinzwind

1
@SergiyKolodyazhnyy thật thú vị khi thảo luận về lịch sử của các dotfiles xuất hiện như thế nào, nhưng trong thực tế, dotfiles / dotprinters bị ẩn (không hiển thị) theo mặc định bởi các trình quản lý tệp và các lệnh bash như thế nào dir. Theo cách đó, vâng, họ hoàn toàn "ẩn". Ẩn các tệp theo cách này phục vụ mục đích tốt để ngăn chặn chúng vô tình bị thay đổi / xóa bởi người dùng cuối - đó là lý do tại sao chúng vẫn được sử dụng rất phổ biến. Tôi đồng ý rằng dotfiles không nên được sử dụng để bảo mật, theo nghĩa là chúng không thể tìm / đọc / thay đổi.
Nmath

3
@SergiyKolodyazhnyy vài phương pháp có hiệu quả 100%. Theo như tuyên bố rằng các dotfiles "không có cách nào bị che giấu" là sai lầm rõ ràng, vì đó là lý do chính mà chúng được sử dụng và là lợi ích duy nhất để thêm vào trước đó .. Họ hoàn toàn vô hình? Không, và họ không nên. Họ vẫn có thể được đọc / viết? Vâng, và họ nên. Có phải chúng vô hình (ẩn) trong hầu hết các trường hợp? Vâng - đó là điểm chính
Nmath

1
@Nmath Vâng, chúng ta hãy đồng ý không đồng ý :) Bên cạnh phần bình luận không dành cho các cuộc thảo luận rộng rãi.
Sergiy Kolodyazhnyy

Câu trả lời:


19

Có, có một tiêu chuẩn: những điều này được freedesktop.org chỉ định và là một phần của Thông số kỹ thuật thư mục cơ sở XDG .

config-spec chỉ phác thảo các yêu cầu cơ bản, nhưng các chi tiết có trong Thông số kỹ thuật cơ sở. Các thư mục ~/.config~/.cachemặc định trừ khi được cấu hình khác:

Có một tập hợp các thư mục cơ sở được sắp xếp theo thứ tự liên quan đến các tệp cấu hình nên được tìm kiếm. Tập hợp các thư mục này được xác định bởi biến môi trường $ XDG_CONFIG_DIRS.

Có một thư mục cơ sở duy nhất liên quan đến dữ liệu không cần thiết (được lưu trong bộ nhớ cache) dành riêng cho người dùng. Thư mục này được xác định bởi biến môi trường $ XDG_CACHE_HOME.

...

$ XDG_CONFIG_HOME xác định thư mục cơ sở liên quan đến các tệp cấu hình cụ thể của người dùng sẽ được lưu trữ. Nếu $ XDG_CONFIG_HOME không được đặt hoặc trống, nên sử dụng mặc định bằng $ HOME / .config.

...

$ XDG_CACHE_HOME xác định thư mục cơ sở liên quan đến các tệp dữ liệu không cần thiết cụ thể của người dùng sẽ được lưu trữ. Nếu $ XDG_CACHE_HOME không được đặt hoặc trống, nên sử dụng mặc định bằng $ HOME / .cache.

Bạn có thể nhận thấy các thông số kỹ thuật này chủ yếu nêu rõ nơi dữ liệu nên được lưu trữ, biến môi trường nào được sử dụng và theo cách thức nào (trung lập với máy tính để bàn, hiệu quả, v.v.), nhưng hầu hết các máy tính để bàn đều tự do thực hiện phần "làm thế nào" của nó. Các máy tính để bàn dựa trên Gnome sẽ sử dụng gsettingskhi người dùng KDE có thể sử dụng cùng thông qua kwriteconfig, nhưng cả hai sẽ dựa vào ~/.configthư mục trong quy trình


Câu hỏi quan trọng

Làm thế nào để tôi biết đây là một thư mục được hỗ trợ chính thức và không chỉ là hương vị của vị trí tháng cho bộ nhớ cache / cấu hình cho mỗi người dùng?

Các thư mục này xuất hiện trong tài liệu chính thức và Tiêu chuẩn phân cấp hệ thống tập tin cũng đề cập đến chúng. Đây là tài liệu chính thức, do đó các thư mục được hỗ trợ chính thức.

Đây có phải là một cái gì đó tôi chỉ nên chấp nhận như là một địa điểm thực hành tiêu chuẩn không nêu?

Phụ thuộc vào ứng dụng bạn đang tạo. Là ứng dụng được cho là có thể cấu hình trên cơ sở mỗi người dùng hoặc hoạt động ổn định trong toàn hệ thống? FHS cho chúng ta biết rằng đối với những thứ trên toàn hệ thống, chúng ta nên sử dụng /etchoặc /usr/local, nhưng các thư mục XDG nên được sử dụng cho các cấu hình dành riêng cho người dùng - ~/.cache~/.config. Tất nhiên, nếu ứng dụng không phụ thuộc vào cài đặt dành riêng cho người dùng, / var / cache có thể được sử dụng thay cho thư mục theo người dùng. Tất nhiên, bạn luôn có thể có một ~/.appname.conftệp, một ~/.appname.db hoặc ~/.appname/thư mục để giữ cấu hình và bộ đệm ở đó, nhưng điều đó sẽ không chuẩn; không "xấu" - chỉ là không chuẩn.

Xem thêm


ehm bạn đã đăng bài này trước tôi? hay trong thời gian? > :)
Rinzwind

@Rinzwind Ngay trước câu trả lời của bạn :) Hãy nhìn vào dòng thời gian Askubfox.com/posts/1151791/timeline
Sergiy Kolodyazhnyy

Ill cho phép bạn có cái này: =)
Rinzwind

Ah tuyệt vời, tôi nên đào sâu hơn, cảm ơn thông tin.
Daniel A

Phần nào của POSIX nói về việc sử dụng thư mục?
chepner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.