用GNU-stow集中管理dotfiles
最近经常自己搞搞配置,比如 .vimrc .tmux.conf .i3/config 之类的
想把这些 dotfiles 集中放在一个文件夹,用git管理,也方便之后换电脑快速配置
但是用 ln 一个一个手动把文件夹中的 dotfiles 链接回用户目录下明显是不现实的
例如 oh-my-zsh 的配置可能是递归的多层文件夹,手动操作太麻烦了
这时候就需要像 gnu-stow 这样的工具
1. install stow
我是用的是 manjaro(Arch), 直接用pacman安装即可
1 |
|
其他系统可自行查阅对应的安装方法
2. dotfiles management
2.1 new dir
为了集中管理 dotfiles, 首先可以在用户目录下新建一个文件夹用于存放所有 dotfiles
1 |
|
2.2 move dotfiles
接下来将 dotfiles 转移到刚才新建的文件夹下
由于 stow 的管理单元是一个一个的 package
我们需要在 .dotfiles/ 下创建对应的文件夹当作 package
single file
像 .zshrc 这种单个配置文件,直接转移就好(注意提前做好备份)
1 |
|
接着用stow创建软链接
1 |
|
我们可以回到用户目录下,看看是否成功
1 |
|
recursive dotfiles
上述单个文件用stow管理,可能会觉得好像这没什么方便的啊
但是当遇到以下情景时,stow的优势就体现出来了
1 |
|
这时候一个一个自己链接就太慢了
可以直接将整个文件夹转移到 stow 的 package 中,再用 stow 递归链接
1 |
|
3. My dotfiles
我最近刚建了个仓库,但是里面配置文件还没仔细自己写,先放个链接在这,以后这个仓库会更新的
用GNU-stow集中管理dotfiles
https://cyandyue.github.io/2025/01/18/Linux-dotfiles-stow/