lof*_*ops 5 configuration configuration-management xdg xdg-base-directory
据我了解,XDG 指南建议应用程序将其配置存储在$XDG_CONFIG_HOME/APP(通常~/.config/APP)而不是~/.APP(我不确定是否也有 Debian/Ubuntu 指南?)。但是,我发现了许多使用旧~/.APP约定的配置文件和文件夹。
有没有办法全局强制非确认应用程序使用 XDG 文件夹约定?
还是我只需要为每个项目记录一张票?:D
我没有找到在全球范围内强制执行此类行为的方法,因为默认配置路径通常被硬编码到程序中。
如果您正在寻找一种简单的方法来备份所有配置,您可以在每个应用程序的基础上创建从~/.app到 的符号链接~/.config/app。不幸的是,虽然这不会让您的家变得杂乱,但所有配置文件都将被保存起来~/.config以便于备份。
我在XDG Base Directory support中找到了一些优秀的配置信息。
这为设置以下内容提供了很好的提示:
export LESSHISTFILE="$XDG_CACHE_HOME"/less/history
Run Code Online (Sandbox Code Playgroud)
这样旧版配置/缓存/数据文件仍然可以使用 XDG 指定的目录。
我还需要添加我的~/.bashrc:
# XDG - set defaults as they may not be set
# See https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
# and https://wiki.archlinux.org/title/XDG_Base_Directory#Support
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
if [ ! -w ${XDG_RUNTIME_DIR:="/run/user/$UID"} ]; then
echo "\$XDG_RUNTIME_DIR ($XDG_RUNTIME_DIR) not writable. Unsetting." >&2
unset XDG_RUNTIME_DIR
else
export XDG_RUNTIME_DIR
fi
Run Code Online (Sandbox Code Playgroud)
Ubuntu 14.04 LTS 上默认未设置这些。