» TechAcademyの無料体験

シンボリックリンクを貼る際の注意点|「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

コメント

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