我想知道我是否可以做类似的事情:
export HOME=$HOME:$HOME/.configs
这样我就可以将所有自定义配置保存在 ~/.configs 中。
我知道可以设置它,但我不确定它是否会在以后引起问题。这安全吗?有没有更标准的方法?
答案1
首先,尽管有可能,而且专家在某些罕见的情况下可能需要这样做,但您不应该更改环境变量的值HOME
,它是由您的系统设置的。
其次, 的内容HOME
预计只有一个(现有)目录:您的主目录。
看什么POSIX 说关于HOME
:
HOME:系统应在登录时将此变量初始化为用户主目录的路径名。
答案2
该$HOME/.config
目录是XDG规格且由 的值决定$XDG_CONFIG_HOME
。
从理论上讲,这意味着如果您希望将配置文件存储在其他位置,则只需设置$XDG_CONFIG_HOME
为该首选位置即可。
然而,在实践中,您很可能会发现盲目写入$HOME/.config/...
而不是遵循 XDG 规范的软件实例。特别是因为它不是任何发行版的必需部分。
对于遵循 XDG 的应用程序,您还可以拥有一组目录($XDG_CONFIG_DIRS
冒号分隔,例如$PATH
)来定义应从中获取默认值的其他位置。该值的默认值应该是/etc/xdg
。
现在,您应该提出的下一个问题是:“好吧,那么我该在哪里设置$XDG_CONFIG_HOME
?”不幸的是这变得相当复杂。
总而言之,您可能会将其放入.profile
(或.bash_profile
, .bashrc
) 中,但可能需要通过 PAM 进行全局配置。就我个人而言,我还没有尝试过这一点,特别是我不知道.profile
基于 GUI 的登录环境如何使用基于解决方案的解决方案。
第二个问题可能是“如何将我的配置移动到这个新位置?”,这也是充满潜在问题。叹。
这里最简单的选择可能是使用指向$HOME/.config
您首选位置的符号链接。这不仅可以处理设置方面的任何问题$XDG_CONFIG_DIR
,还可以处理坚持直接在下面查看的应用程序的任何问题$HOME/.config
。
cd
test -d .config && mv .config .config_old
ln -s /path/to/preferred_config_dir .config