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

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

我发现许多应用程序都在使用这些目录,现在我正考虑将它们用于我的应用程序。我如何知道这是一个官方支持的文件夹,而不仅仅是每个用户缓存/配置的临时位置?

我一直在搜索 Ubuntu 的官方信息,但无济于事;也许其他人知道正确的搜索词或此文档的位置。我是否应该接受这个未说明的标准实践位置?

答案1

是的,有一个标准:这些是由 freedesktop.org 指定的,并且是XDG 基础目录规范

配置规范仅概述了基本要求,但详细信息请参阅基本目录规范。除非另有配置,否则~/.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该过程中的目录


问题要点

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

这些目录出现在官方文档中,文件系统层次标准也提到了它们。这是官方文档,因此这些文件夹受到官方支持。

我是否应该接受这个未说明的标准实践地点?

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

也可以看看

相关内容