第 2 章 コマンド 25
2.2 ディレクトリ構造
ここでは操作の対象となるファイルとディレクトリについて説明します.まず身近にあるファイ ルについて考えてみましょう .一つファイルを想像してみてください .たとえば,この手引きの PDFファイルでもいいかもしれません. それを念頭にちょっと話を進めていきます .
UNIXでは, ファイルに英文字・数字・いくつかの記号からなる名前(ファイル名)をつけて管 理します.そして,ファイルをまとめるものとしてディレクトリ(directory)というものがあり,こ のディレクトリの中に,ファイルとディレクトリを格納することができます.
ちょうど,入学式でもらったファイルをまとめておくと,あとあと困らないので,バインダーに 閉じたり2,ひとところに纏めて置いたりしたと思いますが,それと同じようなことが,人間が使 いやすいようにするためにコンピュータでもできるようになっているわけです .
そしてこういったお約束ごとがあるので,ひとつのコンピュータに複数のファイルを分類して入 れることができるというわけです.
2ただし,コンピュータの中ではバインダーの中にバインダーを閉じるといったことは容易に行えます
America
Sierra Nevada Ohio
Cambridge Springfield Greenville Massachusetts
Cambridge Springfield Greenville
Europe
Sierra Nevada England
Cambridge Springfield Greenville
図 2.1: ファイル名が同じでも,ディレクトリが違えば共存できる
こういった構造や,それを支えるシステムをディレクトリ構造,と呼び習わすことになっていま す .そういうわけで,UNIXのディレクトリ構造は,図2.2のように,ディレクトリにファイル を入れることができます.
図 2.2: ディレクトリ構造の例
ディレクトリ構造とは,こういったファイルやディレクトリを扱うシステムと構造の事です.
ディレクトリをさらにディレクトリに入れることができるので,図2.2のような入れ子構造を作る ことができます.
図2.2の例では,まず「/」で表される「木の根3」にあたるルートディレクトリというものがあ ります .
2.2.1 Windows のディレクトリ構造
C:
Program Files
Program Files (64bit) Users
Brezhnev Honecker
Document and Settings boot.ini
Z:
Pictures Fonts Bitcoins
Transactions Users
Accounts Latex
図2.3: 木が複数本あり森のようになっている
まず,みなさんにとって馴染み深いかもしれないWindowsについておさらいしてみましょう.
Windowsでは,デバイスごとに別々の木になっています.ハードディスクはC:\, USBメモリは Z:\4,といったふうに,別のドライブは別のディレクトリツリーに格納されていました .つまり,
ディレクトリツリーが複数あり,森のようになっていました. C:から上に上がってZ:にはいる,
といった操作はできなかったわけですね .
2.2.2 UNIX のディレクトリ構造
これから皆さんが触れていくUNIXでは,1つのコンピュータはただひとつのディレクトリツ リーをもち,接続されたドライブやネットワーク上のディレクトリ構造もすべてこのディレクト リツリーに参加することになっています .すこしややこしくなってきましたか? Windowsとは 本質的にいろいろと異なるものですから,一度Windowsの常識はここで置いていくことにして,
まっさらな頭にUNIXについて焼き込んでいくことにしましょう. 先入観がなければ,実のとこ ろとてもシンプルです .
3ディレクトリ構造は樹形図で表されることが多いため,しばしば木という表現が用いられ,親ディレクトリのないディ レクトリを根(あるいはroot/ルート)と呼びます.MacのターミナルやWindowsのコマンドプロンプトでは,その名の 通りtreeというコマンドがあり,カレントディレクトリ(後述)をルートとしたディレクトリ構造が見られます.
4古くはハードディスクはとても高かったので,必ずついているわけではありませんでした .ハードディスクがないコ ンピュータではプログラムはフロッピーから起動していましたが,同時にセーブデータも保存したいので,2つの口がつい ていることが多かったです. そんなわけで,起動フロッピ ーはA: ,もう一個のフロッピーはB:……そしてハードディス クはC:と,いうわけです.
おさらいすると,ルートディレクトリとは,コンピュータからみえるすべてのファイルとディレ クトリの根っこにあたるものです.これより上のディレクトリはありませんし,ここからたどれな いディレクトリ構造はありません.
さて,図2.2のルートディレクトリには,その中に“bin”“usr”“User”という3つのディレクトリ がありますね.ディレクトリ“bin”の中にはさらに,“ls”“rm”というファイルがあります.これ らは実はファイルであるだけでなく,プログラムでもあります. プログラムはファイルなのです .