GNU stow。ディレクトリではなく、ファイルのみのシンボリックリンク

GNU stow。ディレクトリではなく、ファイルのみのシンボリックリンク

Git リポジトリを使用してドットファイルを管理したいと思いますstowこれが私の現在のリポジトリです保存したいファイル/ディレクトリと、Makefile使用しているコマンドが含まれていますmake stow

残念ながら、stow が存在しないディレクトリに遭遇すると問題が発生しました。たとえば、~/.config/yabai/ディレクトリを削除して (新規インストールでまだ存在しないことをシミュレートするため)、実行すると、make stowディレクトリ全体のシンボリックリンクが作成されます。

$ ls -l
[...]
lrwxr-xr-x   1 adam staff   26 Mar 12 19:28 yabai -> ../.dotfiles/.config/yabai
[...]

これにより、私またはプログラムがこのディレクトリに追加のファイルを作成すると、それらのファイルも私のディレクトリに表示されるため、問題が発生します~/.dotfiles/


ディレクトリが既に存在する場合、ディレクトリ自体ではなくその中のファイルがリンクされるため、この問題は発生しません。

$ ls -l
drwxr-xr-x   3 adam staff   96 Mar 12 19:43 yabai
$ ls -l
lrwxr-xr-x  1 adam staff  37 Mar 12 19:43 yabairc -> ../../.dotfiles/.config/yabai/yabairc

ドットファイルの管理に使用している人の数から判断するとstow、この動作を回避する方法があると思います。おそらく、最初にディレクトリ構造を再作成し、次にリンクを作成する方法でしょう。

関連情報