シンボリックリンクを貼る際の注意点|「No such file or directory」とならないように

シンボリックリンクを貼る際の注意点 Linux
記事内に広告が含まれています。

シンボリックリンクを貼る際の注意点について。相対パスでシンボリックリンクを貼る際に少し詰まったので、その時のことについて書いています。

シンボリックリンクを貼る際の注意点

絶対パスでシンボリックリンクを貼る

git でシンボリックリンクを管理する際、ローカル環境で以下のように絶対パスでシンボリックリンクを貼っていた場合、ローカルでは正常に機能する。

しかし、git 管理している場合、当たり前だが、他の人が pull すると、シンボリックリンクが上手く機能しない。

実施コマンド

ln -s /Users/user-name/Dir/dirA/assets /Users/user-name/Dir/dirB/

ディレクトリ構造

Dir
├─ dirA
│ └─ assets
└─ dirB
  └─ assets -> /Users/user-name/Dir/dirA/assets

相対パスでシンボリックリンクを貼る

相対パスで貼れば、シンボリックリンクが上手く機能すると思い、下記のようにシンボリックリンクを貼りましたが、この場合、壊れたシンボリックリンクが作成され、リンク先のファイルが存在しない状態になります。

実施コマンド

ln -s dirA/assets dirB/

ディレクトリ構造

Dir
├─ dirA
│ └─ assets
└─ dirB
  └─ assets -> dirA/assets

シンボリックリンクを上手く機能させるためには、リンク先からみたリンク元のパスを指定する必要があるので、以下のようにシンボリックリンクを貼ってあげることで解消しました。

実施コマンド

cd dirB
ln -s ../dirA/assets ./

ディレクトリ構造

Dir
├─ dirA
│ └─ assets
└─ dirB
  └─ assets -> ../dirA/assets
Linux関連のおすすめUdemy講座
Linux関連のおすすめ書籍

コメント

タイトルとURLをコピーしました