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 ~/.config
i ~/.cache
katalogi 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ć, gsettings
gdy użytkownicy KDE mogą korzystać z tego samego przez kwriteconfig
, ale obaj będą polegać na ~/.config
katalogu 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ć /etc
lub /usr/local
, ale katalogi XDG powinny być używane do konfiguracji specyficznych dla użytkownika - ~/.cache
i ~/.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.conf
plik, 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ż