14.4.1 ディレクトリ

ディレクトリとはフォルダ(hwb14.1 ファイルとフォルダの基本 参照)と同じ意味です.Finder のような GUI の環境ではフォルダと呼ぶことが多いですが,コマンドを使って操作する環境ではディレクトリと呼びます.

以下の話では,ディレクトリの階層構造を理解していることが前提となります.不安のある人は先に hwb14.2.1 ファイルシステムとは を参照してください.

カレントディレクトリ

カレントディレクトリとは,Finder でいうカレントフォルダ,つまり現在作業しているディレクトリのことを指します (Finder については hwb14.3 Finder を使ったファイル操作 参照).比喩的に「ユーザが今いるディレクトリ」というような言い方をすることもあります.

カレントディレクトリは pwd コマンドで確認することができます.

pwdreturn2
/home01/0000000000

この実行結果は,カレントディレクトリはルートディレクトリの home01 ディレクトリの下の 0000000000 ディレクトリであることを意味しています.Windows ではディレクトリの区切り文字として半角円記号 (¥) を区切りとしますが,Mac OS X をはじめとする UNIX 系のオペレーティングシステムにおいては,スラッシュ (/) を区切りとします.

パス名の表し方

パス名とは,ファイルやディレクトリの位置を指定するための記述です.大きく分けると,絶対パス名と相対パス名に分けられます.

絶対パス名とは,ルートディレクトリから順番に下位のディレクトリを辿って位置を指定する方法です.絶対パス名ではファイルまたはディレクトリの,ファイルシステム中の絶対的な位置が示されます.ですのでカレントディレクトリがどこであろうと,同じファイルの絶対パス名は変わりません.

相対パス名とは,カレントディレクトリとの相対的な位置関係から位置を指定する方法です.相対パス名はカレントディレクトリとの位置関係で決まるので,同じファイルやディレクトリでもカレントディレクトリが変われば相対パス名は変わります.

相対パス名では,「一つ上のディレクトリ」(親ディレクトリといいます)や「そのディレクトリ自身」の表現が必要になってきます.これらには,それぞれ ..(ピリオド2文字)と .(ピリオド1文字)を用います.コマンドを使ったファイル操作でディレクトリやファイルの位置を指定する場合には,絶対パス名と相対パス名のどちらでも指定することができます.

具体例

例えば,カレントディレクトリが /home01/0000000000/tex であったとしましょう.まず,絶対パス名で

/home01/0000000000/Documents/sample.txt

と表されているファイル(Finder でいうと,「書類」フォルダにある sample.txt になります)は,相対パス名では

../Documents/sample.txt

と表されます.

また,絶対パス名で

/opt/local/bin
/home01/0000000000/tex/other/hoge.tex

と表されるディレクトリやファイルは,それぞれ相対パス名では

../../../opt/local/bin
other/hoge.tex

のように表されることになります.

ディレクトリ自身を表すピリオド (.)

一見すると,「ディレクトリ自身」を示すピリオド (.) は余計なもののように見えますが,ちゃんと意味があります.

例えば,コマンドのオプションはよく – や –(ハイフン 1 つか 2 つ)で始まるので,-piyo.txt など,ハイフン (-) で始まるファイル名を指定する場合はそのままではうまくいかない場合があります.そのような場合,./-piyo.txt と ./ をつければ,(相対)パス名として正しく認識されることになります.

また,カレントディレクトリにある実行ファイルを実行する場合,Windows 環境では単にファイル名を入力すれば実行できますが,Mac OS X などの UNIX 系 OS ではうまくいかないようになっているのが習慣です(hwb14.4.5 パーミッションと実行ファイル).そのような場合,./ を前につけて実行ファイル名を指定すればよいです.

ホームディレクトリ

ホームディレクトリは,hwb14.2.2 特別なフォルダ において,ホームフォルダとして習ったものと同じです.ターミナルにおいては,自分のホームディレクトリを表すために(絶対パス名を書く代わりに)~ を使うことができます.例えば,自分の ID が 0000000000 であるとき,

/home01/0000000000/tex

と書く代わりに

~/tex

と書けます.

ターミナルウィンドウを開いた直後では,カレントディレクトリはホームディレクトリになっています.