Czy istnieje oficjalna dokumentacja katalogów takich jak ~ / .config i ~ / .cache?

13

Widzę, że te katalogi są używane przez wiele aplikacji i rozważam ich użycie w mojej aplikacji. Skąd mam wiedzieć, że jest to oficjalnie obsługiwany folder, a nie tylko lokalizacja miesiąca dla pamięci podręcznej / konfiguracji na użytkownika?

Byłem w Google i szukam czegoś oficjalnego z Ubuntu, ale bezskutecznie, może ktoś inny zna właściwe wyszukiwane hasła lub lokalizację tej dokumentacji. Czy to coś, co powinienem zaakceptować jako nieokreśloną standardową lokalizację ćwiczeń?

Danny A.
źródło
„może ktoś inny zna właściwe wyszukiwane hasła”: Nie jestem pewien oficjalnej dokumentacji dotyczącej ich użycia, ale są one uważane za pliki kropkowe, a dokładniej w tych przykładach foldery kropkowe . Są domyślnie ukryte i są powszechnie używane do zapisywania preferencji użytkownika (~ / .config) i innych plików „pomocniczych”, takich jak pamięć podręczna (~ / .cache).
Nmath
2
niewłaściwe miejsce „oficjalne z Ubuntu”. Jest zdefiniowany przez organizację freedesktop, więc zależy od niego. Nie tylko Ubuntu. Och, a to są WYTYCZNE.
Rinzwind
1
@SergiyKolodyazhnyy interesujące jest omówienie historii powstania plików dotfiles, ale w praktyce pliki / foldery dotfolderów są domyślnie ukryte (niewidoczne) przez menedżerów plików i polecenia bash dir. W ten sposób tak, są absolutnie „ukryte”. Ukrywanie plików w ten sposób ma dobry cel, aby zapobiec ich przypadkowej zmianie / usunięciu przez użytkownika końcowego - dlatego są one nadal tak powszechne. Zgadzam się, że pliki kropkowe nie powinny być używane dla bezpieczeństwa, w tym sensie, że nie można ich znaleźć / odczytać / zmienić.
Nmath
3
@SergiyKolodyazhnyy kilka metod działa samodzielnie w 100%. Twierdzenie, że pliki dot są „w żaden sposób ukryte”, jest wyraźnie fałszywe, ponieważ jest to główny powód ich używania i jedyna korzyść z dodania poprzedniego .. Czy są całkowicie niewidoczne? Nie i nie powinny. Czy nadal można je czytać / pisać? Tak i powinni. Czy w większości przypadków są niewidoczne (ukryte)? Tak - o to chodzi
Nmath,
1
@Nmath Cóż, po prostu zgódźmy się nie zgadzać :) Poza tym sekcja komentarzy nie jest przeznaczona do obszernych dyskusji.
Sergiy Kolodyazhnyy

Odpowiedzi:

19

Tak, istnieje standard: są one określone przez freedesktop.org i są częścią specyfikacji katalogu podstawowego XDG .

config-spec określa tylko podstawowe wymagania, ale szczegóły znajdują się w specyfikacji katalogu podstawowego. Te ~/.configi ~/.cachekatalogi są domyślne chyba skonfigurowany inaczej:

Istnieje zestaw uporządkowanych preferencyjnie katalogów podstawowych, w odniesieniu do których należy wyszukiwać pliki konfiguracyjne. Ten zestaw katalogów jest zdefiniowany przez zmienną środowiskową $ XDG_CONFIG_DIRS.

Istnieje jeden katalog bazowy, w odniesieniu do którego powinny zostać zapisane specyficzne dla użytkownika nieistotne (buforowane) dane. Ten katalog jest zdefiniowany przez zmienną środowiskową $ XDG_CACHE_HOME.

...

$ XDG_CONFIG_HOME definiuje katalog podstawowy, względem którego powinny być przechowywane specyficzne dla użytkownika pliki konfiguracyjne. Jeśli $ XDG_CONFIG_HOME nie jest ustawiony lub jest pusty, należy użyć wartości domyślnej równej $ HOME / .config.

...

$ XDG_CACHE_HOME definiuje katalog podstawowy, względem którego powinny być przechowywane niepotrzebne pliki danych specyficzne dla użytkownika. Jeśli $ XDG_CACHE_HOME nie jest ustawiony lub jest pusty, należy użyć wartości domyślnej równej $ HOME / .cache.

Możesz zauważyć, że te specyfikacje określają głównie miejsce przechowywania danych, użyte zmienne środowiskowe i sposób (neutralny dla komputerów stacjonarnych, wydajny itp.), Ale większość komputerów stacjonarnych ma swobodę we wdrażaniu części „jak”. Pulpity oparte na GNOME będą używać, gsettingsgdy użytkownicy KDE mogą korzystać z tego samego przez kwriteconfig, ale obaj będą polegać na ~/.configkatalogu w tym procesie


Pytanie kluczowe punkty

Skąd mam wiedzieć, że jest to oficjalnie obsługiwany folder, a nie tylko lokalizacja miesiąca dla pamięci podręcznej / konfiguracji na użytkownika?

Te katalogi pojawiają się w oficjalnej dokumentacji, o której wspomina również Hierarchia plików . Jest to oficjalna dokumentacja, dlatego foldery są oficjalnie obsługiwane.

Czy to coś, co powinienem zaakceptować jako nieokreśloną standardową lokalizację ćwiczeń?

Zależy od tworzonej aplikacji. Czy aplikacja ma być konfigurowalna dla poszczególnych użytkowników, czy może działać konsekwentnie w całym systemie? FHS mówi nam, że do rzeczy ogólnosystemowych powinniśmy używać /etclub /usr/local, ale katalogi XDG powinny być używane do konfiguracji specyficznych dla użytkownika - ~/.cachei ~/.config. Oczywiście, jeśli aplikacja nie jest zależna od ustawień specyficznych dla użytkownika, zamiast katalogu dla użytkownika można użyć / var / cache . Oczywiście zawsze możesz mieć pojedynczy ~/.appname.confplik, katalog ~/.appname.db lub, ~/.appname/aby przechowywać tam konfiguracje i pamięć podręczną, ale byłoby to niestandardowe; nie „zły” - po prostu niestandardowy.

Zobacz też

Sergiy Kolodyazhnyy
źródło
ehm opublikowałeś to przede mną? czy podczas? > :)
Rinzwind
@Rinzwind Tuż przed odpowiedzią :) Spójrz na linię czasu askubuntu.com/posts/1151791/timeline
Sergiy Kolodyazhnyy
Niech dam ci to: =)
Rinzwind
Ach, świetnie, powinienem był kopać głębiej, dzięki za informację.
Danny A
Która część POSIX mówi o wykorzystaniu katalogu?
chepner,