Да, есть стандарт: они определены freedesktop.org и являются частью спецификаций XDG Base Directory .
В 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
каталог в процессе
Ключевые вопросы
Как я узнаю, что это официально поддерживаемая папка, а не просто указатель расположения месяца для кэша / конфигурации для каждого пользователя?
Эти каталоги появляются в официальной документации, и в стандарте файловой системы также упоминается о них. Это официальная документация, поэтому папки официально поддерживаются.
Это то, что я должен просто принять как неустановленное стандартное место практики?
Зависит от приложения, которое вы создаете. Должно ли приложение быть настраиваемым для каждого пользователя или работать согласованно во всей системе? FHS говорит нам, что для общесистемных вещей мы должны использовать /etc
или /usr/local
, но каталоги XDG должны использоваться для пользовательских настроек - ~/.cache
и ~/.config
. Конечно, если приложение не зависит от пользовательских настроек, вместо каталога для пользователя можно использовать / var / cache . Конечно, у вас всегда может быть один ~/.appname.conf
файл, каталог ~/.appname.db
или ~/.appname/
каталог для хранения конфигураций и кэша, но это будет нестандартно; не «плохо» - просто нестандартно.
Смотрите также