memo

2013-01-09

dotfiles の管理に stow を使う

~/dotfiles に dotfiles を置いて git/mercurial で管理しているとして、 個々のファイルへの symlink を ~/ に置く必要があるのだけど、 それを stow を使ってやろう、というお話。

ファイル・ディレクトリ構成は以下のような感じ:

dotfiles:
./  ../  .git/  vim/  zsh/

dotfiles/vim:
./  ../  .vim/  .vimrc

dotfiles/zsh:
./  ../  .zprofile  .zshrc

symlink の作成:

$ stow -d ~/dotfiles -t ~/ -v vim zsh
LINK: .vim => dotfiles/vim/.vim
LINK: .vimrc => dotfiles/vim/.vimrc
LINK: .zprofile => dotfiles/zsh/.zprofile
LINK: .zshrc => dotfiles/zsh/.zshrc

symlink の削除:

$ stow -d ~/dotfiles -t ~/ -v -D vim
UNLINK: .vim
UNLINK: .vimrc

dotfiles の増減があった時:

$ stow -d ~/dotfiles -t ~/ -v -R zsh
UNLINK: .zshrc
UNLINK: .zprofile
LINK: .zshrc => dotfiles/zsh/.zshrc (reverts previous action)
LINK: .zshenv => dotfiles/zsh/.zshenv