相対パスによるファイル名の表記

でも絶対パスによってしかファイルの名前が表現できないとしたらこれは非常に不便なことです。
例えば yasuda さんが自分のホームディレクトリの直下にある log というファイルを old-log という名前に変えたいと思ったときに、こんな風にコマンドを書かなくてはいけません。

cc2000(82)% mv /NF/home/g840/yasuda/log /NF/home/g840/yasuda/old-log

いやこれはたまりません。これでは単に長い名前をファイルに付けているようなもので、何のためにディレクトリという概念を導入したのか判りません。
そこでファイルを表現するのに、ディレクトリ・ツリーの前半部分をタイプしなくても済むように覚えておいて、ツリーの残りの部分だけ表現すればいいような表記方法があります。
そのために UNIX のシェルは、常にディレクトリ・ツリーのどれか一つのディレクトリに注目しています。
そのディレクトリまでのツリーの記述は省略可能となるわけです。

例えば先の例の mv において、今注目しているディレクトリがホームディレクトリだったとすると、以下のようにコマンドを短く書くことができます。

cc2000(82)% mv log old-log

この「今注目しているディレクトリ」もしくは「今省略可能であるディレクトリ」を「カレントディレクトリ」もしくは「ワーキングディレクトリ」と呼んでいます。

カレントディレクトリ

カレントディレクトリはコマンドによって変更することができます。(後述)

pwd コマンドでカレントディレクトリを確認する事ができます。

cc2000(81)% pwd
/NF/home/g840/yasuda
cc2000(82)%

先の例の、省略された mv コマンドのファイルに関する表記では、この /NF/home/g840/yasuda が省略されていたというわけです。

ところで、login 直後のカレントディレクトリは常にホームディレクトリです。
つまり今までのファイルの操作などで試してきたファイルは、この省略された表記法によって表現された、あなたのホームディレクトリ直下にあったファイルだったのですね。
ls コマンドなどでその一覧が表示されていたのも、あなたのホームディレクトリ以下の内容だったというわけです。

こうして表現することによってディレクトリ・ツリーの中で、簡単な表記によってファイルが指示できるようになります。これを「相対パスによるファイル名の表記」などと呼んでいます。
相対パスによる表記の場合、その表記はカレントディレクトリを起点にして、たどって行くディレクトリの道のり(path : パス)を表現しているとみなせます。


Yutaka Yasuda (yasuda@bakkers.gr.jp)