我的主目录中有许多隐藏的配置文件:
- 其中一些在
~/
(例如~/.cinnamon
) - 其中一些在
~/.config/
(例如~/.config/cinnamon-session
) - 其中一些在
~/.local/share/
(例如~/.local/share/cinnamon-session
)
主配置文件所在的逻辑是什么?
a) 这三个地方的隐藏文件有什么区别?
b) 在这种情况下,“本地”到底是什么意思,相对于配置,相对于家庭?
c) 在主目录中,是否还存在多个应用程序使用的其他重要的公共配置目录?
Debian 8.6 肉桂 2.2.16
答案1
当谈到“点文件”的一般情况时,这里有很长的历史,但是您特别提到的$HOME/.config
和$HOME/.local
目录起源于XDG 基目录规范。
$HOME/.config
如果没有$XDG_CONFIG_HOME
.$HOME/.cache
如果没有$XDG_CACHE_HOME
.$HOME/.local/share
如果没有$XDG_DATA_HOME
.
Windows 用户可能会认为这与 Microsoft 自版本 4 以来在 Windows NT 中所采用的类似(尽管名称在版本 6.0 中发生了更改):
%USERPROFILE%/AppData/Local/
又名%LOCALAPPDATA%
— 这台机器的每用户数据文件所在的位置%USERPROFILE%/AppData/Roaming/
又名%APPDATA%
— 漫游用户可以从多台计算机访问的每用户数据文件所在的位置%USERPROFILE%/AppData/Local/Temp/
又名%TEMP%
— 每个用户的临时文件所在的位置
这个想法是每个用户的文件可以(以及很多其他的东西)应用程序数据文件(特定于机器或漫游),应用程序配置文件,缓存文件, 和临时文件,应用程序将它们放置在以这些特定目录为根的子树中。
(MacOS 有一个类似的系统,用户可以在其中获得单独的每用户“用户本地”子树/var/folders
以及用于缓存和临时文件的子目录。)C
T
正如 Arch 人员所指出的,有一些“点”文件和目录已被多个应用程序广泛使用,并且在可预见的将来不太可能与 XDG 一致,例如$HOME/.ssh
和$HOME/.netrc
。
进一步阅读
- 沃尔多·巴斯蒂安、瑞安·洛蒂和伦纳特·珀特林 (2010)。 XDG 基目录规范。 Freedesktop.org。
- 克里斯·杰克逊(2008-02-05)。我应该在哪里写入程序数据而不是程序文件?。原始配方很棒的酱。微软。
- 管理漫游用户数据部署指南。 Windows Vista 技术库。微软技术网。
- https://askubuntu.com/questions/102046/
- https://unix.stackexchange.com/a/555214/5132
- https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
- 莱昂内尔·德里科 (2009-03-11)。 修改您的应用程序以使用 XDG 文件夹。