📌

シンボリックリンクでどハマりした話

2021/07/21に公開
ln -s hoge/hogehoge/hogehogehoge age/hogehogehoge

しているのにno such file or directoryとなり、

ls -l してみると、

age/hogegogehoge->hoge/hogehoge/hogehogehoge

なっとるやないかい!!!

どないなっとんねん!!!!!!!!

となった話。


結論

コピー元のパスが違った。


解説

どういうことかというと、

シンボリックリンクを作成するときのコピー元のパスは、

カレントディレクトからのパスではなく、

シンボリックリンクから見た先のパスを書くということでした。

つまりhogeとageが同列に存在しているとして上記の例でいうと、

ln -s hoge/hogehoge/hogehogehoge age/hogehogehoge
//これはエラー
ln -s ../hoge/hogehoge/hogehogehoge age/hogehogehoge
//これでシンボリックリンクが成立する

という事でした。

自分だけが使うものだったら絶対パス参照でいいのですが、

共同開発するものに対してのシンボリックリンクだと、

そういう訳にはいかないので学びでした。

Discussion