何が起きたか

Windows 環境に置いて git-bash を使用している. その中で, lnコマンドを使用してシンボリックリンクを貼ろうとしたがリンクが指し示す場所が指定した場所ではなかった。

私は~/dotfiles/.config/nvim/へのシンボリックリンクを~/.config/nvimに貼りたかった。

以下に存在するリンク元, リンク先, ユーザ名は例.

# 下記操作を行った。
$ cd ~/dotfiles
$ ln -sf ./.config/nvim/ ~/.config/nvim

しかし, 作成したリンクは下記のようになった。

$ ls -la ~/.config
lrwxrwxrwx 1 user 0000 0000 11月  11日 11:11 nvim -> /c/Users/user/.config/.config/nvim

解決法

lnコマンドに対して渡していたリンク元のパスを相対パスから絶対パスに変更した。

# 下記のコマンドに変更した.
$ ln -sf ~/dotfiles/.config/nvim/ ~/.config/nvim

# 以下は結果
$ ls -la ~/.config
lrwxrwxrwx 1 user 0000 0000 11月  11日 11:11 nvim -> /c/Users/user/dotfiles/.config/nvim

原因は調べていないため不明だが, 絶対パスを渡すようにしましょう。