如何让应用程序将点文件保存在指定的路径?

如何让应用程序将点文件保存在指定的路径?

目前,我的所有配置点文件和点文件夹(例如 .cache、.adobe、.compiz)都位于我的 $HOME 文件夹中。是否有一个环境变量可以指定,使所有应用程序都将其各自的点文件保存在该文件夹中?例如

export CONFIG_FOLDER="/home/rajiv/dotfiles"

如果是的话,我该在哪里指定?

答案1

简而言之,没有. 没有环境变量可以强制应用程序将其点文件保存到除 之外的任何路径$HOME

另一种半手动方法是使用GNU 斯托,一个符号链接场管理器,用于移动二进制包的配置文件,如上所述在这篇博文中

答案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,甚至在您需要时手动运行它。

相关内容