104.6標準
/opt/app/currentというシンボリックリンクに、文字列releases/v2が格納されている。
currentを参照するとき、相対パスを解釈する基準を問う。
解決される参照先はどれか。
× 不正解
シンボリックリンク内の相対パスは、リンクが置かれたディレクトリを基準に解決する。移動可能性を高める一方、配置関係に依存する。
詳細解説
誤り実行プロセスの現在の作業ディレクトリ/release/v2
相対リンクは利用プロセスの作業ディレクトリ基準ではない。
cwdは基準ではない。
誤り/releases/v2
リンク内容を自動的にルート相対として扱わない。
絶対パス扱いにはならない。
誤り/opt/releases/v2
リンクの親/opt/appを基準にするため/optだけではない。
/opt/appのappを落としている。
正しい/opt/app/releases/v2
相対リンク内容はリンク自身が置かれた親ディレクトリから解釈される。
正解。/opt/appを基準に解決する。
実際に確かめる
一時的な検証環境で実行できる例です。
readlink /opt/app/current期待される結果
リンクに格納された相対文字列releases/v2を表示する理解のポイント
- リンクの親が基準
- cwd基準ではない
- 格納文字列と解決先を区別
確認時の注意
- 確認環境: GNU coreutils 9.x/Linux
基礎のおさらい
格納値
readlinkは解決済み絶対パスではなく、通常リンク内の文字列を表示する。
移動
リンクと対象の相対配置を保って一緒に移動すれば参照を維持しやすい。
問題IDKP-104-284
確認環境GNU coreutils 9.x/Linux
最終技術確認2026-08-13
誤り・権利侵害を報告