【さぎょうでぃれくとり】

作業ディレクトリ とは?

最終更新:
💡 ファイルを探すときの「いま、ここ」

プログラムが相対パスを解釈するときの基準になるディレクトリ。カレントディレクトリとも呼ばれ、プログラム本体の保存場所とは限りません。

📌 このページのポイント
同じ相対パスでも、現在地で変わる /work/a data.txt /work/a/data.txt /work/b data.txt /work/b/data.txt 実行ファイルの保存場所とは、別の基準
Linuxの通常の相対パス解決の例。APIやアプリが別の基準を明示する場合もある。線は解釈した結果の場所を示す。
ひよこ ひよこ
ペンギン先生、ファイルがあるのに「見つからない」って出るのはどうして?
ペンギン先生 ペンギン先生
相対パスで指定したなら、探し始める現在地が違うかもしれないね。その基準が作業ディレクトリだよ。ここではLinuxのプロセスを例に考えよう。
ひよこ ひよこ
同じ名前を書いても違う場所になるの?
ペンギン先生 ペンギン先生
たとえば data.txt という指定でも、現在地が /work/a なら /work/a/data.txt、/work/b なら /work/b/data.txt を探すよ。2つの現在地で、探す先も2つになるんだ。
ひよこ ひよこ
プログラムを置いたフォルダが現在地になるんじゃないの?
ペンギン先生 ペンギン先生
必ずしもそうならないよ。Linuxでは子プロセスは親の現在地を引き継ぐんだ。実行するプログラムを切り替えても現在地は維持されるので、起動方法の違いが原因になることがあるね。
ひよこ ひよこ
現在地を変えれば、すべての相対パスの基準も変わるの?
ペンギン先生 ペンギン先生
通常のファイル操作ではそう考えられるよ。ただし、アプリが独自の基準を使ったり、APIに基準のディレクトリを明示したりする場合もあるんだ。ファイルの存在や権限も別に確かめる必要があるね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「作業ディレクトリ」って出てきたら「相対パスでファイルを探すときの現在地」と思えればだいたいOK!
📖 おまけ:英語の意味
「Working Directory」 = 作業の基準となるディレクトリ
💬 作業中の現在地という意味で、current working directoryとも呼ぶんだよ

参考資料

← 用語集にもどる