Subsections

2.2 パス名

パス名 (pathname) とは, ファイルやディレクトリの名前を, ディレクトリの階層構造における場所の記述を含めて表現するものです 3。 パス名には絶対パス名 (absolute pathname) と相対パス名 (relative pathname) の二種類があります。


2.2.1 絶対パス名

絶対パス名では, ディレクトリやファイルの位置を記述する際の基点を, ルートディレクトリ (/) に固定します。 これにより,絶対パス名は必ず / で始まります。 絶対パス名を使ったファイルやディレクトリの表記法は次のとおりです。
ルートディレクトリ:
/

ルートディレクトリ以外:
ルートディレクトリを意味する / に続き, ルートディレクトリから当該ディレクトリやファイルに至るまでの道筋 (順路)を,/ で区切りながら順に記す。

例えば, 図 1 におけるディレクトリ \fbox{OOOO} の絶対パス名は /home/OOOO であり, ファイル temp の絶対パス名は /home/OOOO/unix/temp です4

システム内のどんなファイルやディレクトリであっても, それを表す絶対パス名は唯一つです。 第 2.1節で使った pwd コマンドは, カレントディレクトリの名前を絶対パス名で出力するコマンドです。

2.2.2 相対パス名

相対パス名は, 階層構造内のあるディレクトリを基点として, ファイルやディレクトリの場所を表現するものです。 ただし,コマンド操作における相対パス名の利用では, その基点はカレントディレクトリになりますので, この資料では相対パス名を 「カレントディレクトリを基点としてファイルやディレクトリの場所を表す名前」 の意味で使います。 絶対パス名との大きな違いは,パス名の先頭に / を付けないことです。

相対パス名の書き方は次のとおりです。 ここでは,相対パス名で表現したいディレクトリやファイルが, カレントディレクトリの子孫(ディレクトリの階層構造図では,右側が子孫), 祖先(左側),およびそれ以外の場合に分けて説明します。

カレントディレクトリの子孫の場合:
カレントディレクトリからファイルやディレクトリまでの道筋(順路) を / で区切りながら順に記す。 ただし,カレントディレクトリ名は記さない。 カレントディレクトリを意味する . (ドット) を明示して, ./ に続いて順路を記述してもよい。

カレントディレクトリの祖先の場合:
カレントディレクトリからディレクトリまでの順路を, 親ディレクトリを意味する .. (ドット二つ) を / で区切りながら書き並べる。

上記以外 (カレントディレクトリの祖先の子孫) の場合:
祖先の相対パス名に, その子孫であるファイルやディレクトリまでの相対パス名を追加する。

カレントディレクトリが図 1\fbox{OOOO}であるとします。 このとき,図 1におけるディレクトリやファイルのいくつか を,絶対パス名と相対パス名で表したのが表 1です。 カレントディレクトリを変更すれば相対パス名も変わることに注意しましょう。

表 1: 絶対パス名と相対パス名の対応
絶対パス名 相対パス名 備考
/home/OOOO . カレントディレクトリ
/home/OOOO/unix unix または ./unix  
/home/OOOO/unix/temp unix/temp または ./unix/temp  
/home/OOOO/unix/misc unix/misc または ./unix/misc  
/home .. カレントディレクトリの親
/ ../.. カレントディレクトリの親の親
/home/XXXX ../XXXX カレントディレクトリの親の子
/var ../../var  
/var/tmp ../../var/tmp