![如何让应用程序将点文件保存在指定的路径?](https://linux22.com/image/1043172/%E5%A6%82%E4%BD%95%E8%AE%A9%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%B0%86%E7%82%B9%E6%96%87%E4%BB%B6%E4%BF%9D%E5%AD%98%E5%9C%A8%E6%8C%87%E5%AE%9A%E7%9A%84%E8%B7%AF%E5%BE%84%EF%BC%9F.png)
目前,我的所有配置点文件和点文件夹(例如 .cache、.adobe、.compiz)都位于我的 $HOME 文件夹中。是否有一个环境变量可以指定,使所有应用程序都将其各自的点文件保存在该文件夹中?例如
export CONFIG_FOLDER="/home/rajiv/dotfiles"
如果是的话,我该在哪里指定?
答案1
答案2
正如十年前发布的帖子所述,答案是不。
Nautilus / Files 和其他文件管理器确实有一个选项可以隐藏以.
(点)开头的所有文件和目录。
虽然这不能直接解决您的问题,但它解决了您.names
在寻找数据文件时屏幕混乱的问题。
默认情况下,该ls
命令不会显示.
(隐藏)文件。您需要使用ls -a
包含“全部”才能显示隐藏文件。
答案3
大多数应用程序都有一个环境变量,您可以设置它来指定该应用程序的点文件所在的位置,但这不是标准。
但是,如果您明确设置 xdg 基本目录,我发现大概 70% 的应用程序都会遵循这些。默认情况下应该是 ~/.config,但我发现有时只有明确设置后它才有效。
详情请见此处:https://wiki.archlinux.org/title/XDG_Base_Directory
export XDG_CONFIG_HOME=$HOME/.config
tldr:您只需将其放入 .bashrc 或 .zshrc 或相当于您的 shell 的配置中,就可以使它们中的许多行为正常运行。
然后重新加载终端/shell 会话,然后将点文件移动到新位置。
这虽然不能解决所有问题,但能帮助解决很大一部分问题。
但除了支持它的应用程序和实用程序增多之外,十年来什么都没有改变。
然而,十年来有一件事发生了变化:支持 XDG 基本目录的应用程序数量。
您可以在以下表格中找到受支持的应用程序列表https://wiki.archlinux.org/title/XDG_Base_Directory#Supported
答案4
我不知道将配置文件放在此目录中有什么好处。我只能假设您认为这可以让您更轻松地查看配置文件并修改设置。
这是一个解决方案,如果不存在名为 dotfiles 的目录,下面的脚本将创建一个名为 dotfiles 的目录,然后为 dotfiles 目录中的每个点文件/目录创建符号链接。
在 /usr/bin 目录中创建一个名为 dotfiles.sh 的脚本文件
#!/bin/bash
cd
if [ ! -d dotfiles ] ; then
mkdir dotfiles
fi
ls -d -w 1 -a -C .[a-z,A-Z,0-9]* | while read -r file; do
lnfile=${file:1}
if [ ! -h "dotfiles/$lnfile" ] ; then
ln -s "$file" "dotfiles/$lnfile"
fi
done
您可以设置一个 cron 作业,以某个间隔运行,或将其作为 Post Invoke 命令(DPkg::Post-Invoke)添加到 apt,或将其添加到您的 bashrc,甚至在您需要时手动运行它。