是的,有一个标准:这些由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用户可以通过via使用相同位置的地方使用kwriteconfig
,但是它们都将依赖于~/.config
目录
问题要点
我怎么知道这是一个官方支持的文件夹,而不仅仅是每个用户缓存/配置的月份位置?
这些目录出现在官方文档中,文件系统层次结构标准也提到了这些目录。这是官方文档,因此文件夹得到正式支持。
这是我应该接受的未注明标准练习场所吗?
取决于您正在创建的应用程序。该应用程序是否应该基于每个用户进行配置,或者在整个系统中始终如一地工作?FHS告诉我们,对于系统范围的内容,应使用/etc
或/usr/local
,但是XDG目录应用于用户特定的配置- ~/.cache
和~/.config
。当然,如果应用程序不依赖于用户特定的设置,则可以使用/ var / cache代替每个用户的目录。当然,您始终可以使用单个~/.appname.conf
文件,~/.appname.db
或者~/.appname/
目录来保存配置并在那里缓存,但这是非标准的。不是“不好”-只是非标准。
也可以看看