Skip to content
Latchkey

絶対パスとは?ルートからの完全な位置指定

絶対パスは、ファイルシステムのルートから始まるファイルの完全な位置を記述するため、作業ディレクトリに関係なく同じものを指します。

絶対パスは、ファイルシステムのルートから始めて、ファイルがどこにあるかを正確に示します。現在いる場所に依存しないため、曖昧さがありません。作業ディレクトリがステップ間で変わり得るCIでは、絶対パスは予期せぬ挙動なくファイルを参照する信頼できる方法です。

絶対パスとは何か

絶対パスはルートから始まります。LinuxとmacOSでは /home/runner/work/repo/build のように / で始まります。これはどのプロセスのカレントディレクトリにも依存せず、位置を固定します。

絶対パス対相対パス

相対パスは作業ディレクトリから解釈されますが、絶対パスはそうではありません。/etc/hosts は常に同じファイルを意味しますが、config/hosts は使うときにどこにいるかによって変わります。

絶対パスを選ぶべき場面

  • 作業ディレクトリが変わり得る、または不確かなとき。
  • ステップやプロセス間でパスを渡すとき。
  • スクリプトが任意の場所から実行されなければならないとき。

絶対パスの構築

スクリプトは早い段階で ROOT="$(pwd)" のような形で絶対的なベースを導出し、そこからパスを組み立てることがよくあります。これにより、作業ディレクトリを変えてしまうかもしれない後続の cd に依存せずに済みます。

CIにおける絶対パス

各CIステップが異なる作業ディレクトリで始まる可能性があるため、絶対パスでファイルを参照すると曖昧さがなくなります。CIプラットフォームは、パスをアンカーできる環境変数としてworkspaceのルートを公開します。

マネージドrunnerでの安定した参照

Latchkeyのrunnerでは、workspaceのパスはjob内で一貫しているため、絶対的なベースにアンカーすることで、作業ディレクトリが変わってもステップ間でファイル参照が有効なまま保たれます。

重要なポイント

  • 絶対パスは、ルートから始まるファイルの完全な位置を示します。
  • 相対パスとは異なり、作業ディレクトリに依存しません。
  • CIでは、絶対パスによりステップ間でcwdが変わっても壊れません。

関連ガイド