Так, існує стандарт: вони визначені freedesktop.org і є частиною специфікацій базового каталогу XDG .
config-spec окреслює лише основні вимоги, але деталі містяться в специфікаціях базового каталогу. Каталоги ~/.config
та ~/.cache
каталоги за замовчуванням, якщо не налаштовано інше:
Існує набір упорядкованих базовими каталогами уподобань, щодо яких файлів конфігурації слід шукати. Цей набір каталогів визначається змінною середовища $ XDG_CONFIG_DIRS.
Існує єдина базова директорія, до якої слід писати несуттєві (кешовані) дані для користувача. Цей каталог визначається змінною середовища $ XDG_CACHE_HOME.
...
$ XDG_CONFIG_HOME визначає базовий каталог відносно того, в якому файлах конфігурації повинні зберігатися конкретні користувачі. Якщо $ XDG_CONFIG_HOME не встановлений або порожній, слід використовувати за замовчуванням $ HOME / .config.
...
$ XDG_CACHE_HOME визначає базовий каталог відносно того, в якому повинні зберігатися конкретні неістотні файли даних, які користувач повинен зберігати. Якщо $ XDG_CACHE_HOME не встановлено або порожньо, слід використовувати за замовчуванням $ HOME / .cache.
Ви можете помітити, що в цих специфікаціях в основному зазначено, де слід зберігати дані, які змінні середовища використовуються та яким способом (нейтральний для робочого столу, ефективний тощо), але більшість настільних комп'ютерів вільні в застосуванні частини "як". Настільні комп'ютери на основі GNOME використовуватимуть gsettings
там, де користувачі KDE можуть використовувати те саме через kwriteconfig
, але вони обидва будуть покладатися на ~/.config
каталог у процесі
Питання ключові моменти
Як я можу знати, що це офіційно підтримувана папка, а не лише аромат розташування місяця для кешу / конфігурації користувача?
Ці каталоги відображаються в офіційній документації, і Filesystem Hierarchy Standard також згадує їх. Це офіційна документація, тому папки офіційно підтримуються.
Це щось, що я повинен просто прийняти як незазначене місце стандартної практики?
Залежить від програми, яку ви створюєте. Чи потрібно додаток налаштовуватись на основі користувача чи працюватиме послідовно через систему? FHS говорить нам , що для загальносистемних речей , які ми повинні використовувати /etc
або /usr/local
, але XDG каталоги повинні використовуватися для користувача конкретних конфігурацій - ~/.cache
і ~/.config
. Звичайно, якщо додаток не залежить від конкретних налаштувань користувача, / var / cache може використовуватися замість каталогу кожного користувача. Звичайно, у вас завжди може бути один ~/.appname.conf
файл, ~/.appname.db
або ~/.appname/
каталог, щоб зберігати там конфігурації та кеш, але це було б нестандартно; не «погано» - просто нестандартно.
Дивись також