是否有关于 ~/.config 和 ~/.cache 等目录的官方文档?

Dan*_*y A 14 configuration cache home-directory

我已经看到许多应用程序使用这些目录,现在正在考虑将它们用于我的应用程序。我怎么知道这是一个官方支持的文件夹,而不仅仅是每个用户缓存/配置的月份位置?

我一直在寻找来自 Ubuntu 的官方内容,但无济于事;也许其他人知道本文档的正确搜索词或位置。这是我应该接受的一个未说明的标准练习地点吗?

Ser*_*nyy 21

是的,有一个标准:这些是由 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 的桌面将使用gsettingswhere 作为 KDE 用户可以使用相同的 via kwriteconfig,但它们都将依赖于~/.config过程中的目录


提问要点

我怎么知道这是一个官方支持的文件夹,而不仅仅是每个用户缓存/配置的月份位置?

这些目录出现在官方文档中,Filesystem Hierarchy Standard也提到了它们。这是官方文档,因此官方支持这些文件夹。

这是我应该接受的一个未说明的标准练习地点吗?

取决于您正在创建的应用程序。应用程序是否应该基于每个用户进行配置或在整个系统中始终如一地工作?FHS 告诉我们,对于系统范围的内容,我们应该使用/etc/usr/local,但 XDG 目录应该用于用户特定的配置 -~/.cache~/.config. 当然,如果应用程序不依赖于特定于用户的设置,则可以使用/var/cache代替每个用户的目录。当然,您可以始终使用单个~/.appname.conf文件、a~/.appname.db~/.appname/目录来保存配置和缓存,但这不是标准的;不是“坏”——只是不标准。

也可以看看