ファイルの構成
Linuxでは,ディレクトリの中にさまざまなファイルが格納されています。ディレクトリの中にディレクトリを格納することも可能です。つまり,あるディレクトリの中にさまざまなファイルやディレクトリが格納されており,これが繰り返されて1つのファイル・システムが構成されるわけです。
言い換えれば,「階層化されたディレクトリとファイルにより1つのファイル・システムが構成される」ことになります。この階層構造が,枝葉を広げた木に見立てられることから,木構造ともよく言います。具体的には,葉がファイル,幹や枝がディレクトリを意味します。木の根(英語ではroot),すなわち根幹に相当するのが,Linuxのルート・ディレクトリ(特殊文字「/」で表記します*3表示)です。このルート・ディレクトリからすべてのファイルやディレクトリをたどることができます。ルート・ディレクトリからたどれるファイルやディレクトリを,「ディレクトリ・ツリー」と呼ぶこともあります。ちなみに,ディレクトリもファイルの一形態です。
/ディレクトリにあるディレクトリ群
ファイル構成の具体例を図3[表示]に示します。ここにあるように,/ディレクトリの中にbinディレクトリ,etcディレクトリ,usrディレクトリ,devディレクトリなどがあります。スペースの都合上,図3には示していませんが,一般ユーザーのホーム・ディレクトリとなるhomeディレクトリなども/ディレクトリの中にあります。
ルート・ディレクトリに格納されているディレクトリ名とその使用目的を表1[表示]に示します。Vine Linux 3.1よりFedora Core 3の方により多くのディレクトリがありますが,主要なものは共通しています*4[表示]。
ファイルの表現方法
ファイル・システムにおいて,特定のファイルを指し示すにはどうすれば良いのでしょうか。
例えば,図3の左側部分にあるファイル「bash」に注目してみましょう。単に,ファイル名「bash」を指定するだけでは,本来システムは認識してくれません*5[表示]。
●絶対パス
/ディレクトリからbashに至るまでのディレクトリ名を明示することで認識させることができます。
この例では,
というように,/ディレクトリからbinディレクトリを経てbashにたどり着くので,
と表記します。
例えば,図3の中央付近にあるファイル「a2ps」であれば,次のようになります。
このように,ディレクトリ名とそれに続くファイル名あるいはディレクトリ名を特殊文字「/」で区切ります。「/」で階層を表していると考えることができます。ただし,先頭の特殊文字「/」は,前述の通り,区切り文字ではなくルート・ディレクトリになります。
ここで述べた「ルート・ディレクトリからの階層を順番にたどったパス指定方法」を絶対パス指定,このパス名を絶対パス名と言います。手順の紹介等では絶対パス名がよく使われます*6[表示]。
1つのディレクトリの中に同じ名前のファイルを2個は格納できませんが,ディレクトリが異なれば可能です。その場合でも,絶対パス指定を用いることにより,特定のファイルを一意に指定できます。また絶対パスで指定すれば,次で紹介するカレント・ディレクトリの位置を気にする必要はありません。
●カレントとホーム
現在作業対象となっているディレクトリをカレント・ディレクトリ(正確には,カレント・ワーキング・ディレクトリ)と呼びます。カレント・ディレクトリは特殊文字「.」(ピリオドあるいはドットと読みます)で表します。
カレント・ディレクトリを知りたい場合には「pwd*7[表示]」コマンドを実行します*8[表示]。
ログイン直後のカレント・ディレクトリをホーム・ディレクトリと呼び,特殊文字「~」(チルダと読みます)で表します。例えば,ユーザー名がjunであれば,
がホーム・ディレクトリになります。これを1文字の
で表すこともできます。そのため,ユーザー名がjunなら,/home/junディレクトリにあるreadme.txtファイルを,
の2通りで表記できます。
ホーム・ディレクトリはユーザーごとに異なります。一般ユーザーは基本的に,自分のホーム・ディレクトリ内でさまざまな作業を行うことになります。
●相対パス
カレント・ディレクトリに注目してパス名を指定することもできます。この指定方法を相対パス指定,パス名を相対パス名と言います。例えば図2のファイル・システムにおいて,カレント・ディレクトリが/usr/binディレクトリであれば,ファイル「a2ps」の相対パス名は,
となります。あるいは,カレント・ディレクトリの「.」を省略してファイル名だけで指定することもできます。
また,図3左側のファイル「bash」の相対パス名は,
となります。ここで,特殊文字「..」(ピリオド2個)は親ディレクトリを表します。つまり,直近の上段ディレクトリを表します。本例では,左から2番目の「..」はカレント・ディレクトリのすぐ上段のディレクトリ(/usr)を表し,左端の「..」はその上段のディレクトリ(ルート・ディレクトリ)を表します。