コンピュータにおけるファイルを一般的に定義すれば, 「ある目的のために、関連性のある一定形式の情報を集めて, 記録媒体上に記録したもの」です. 私たちがコンピュータ上で情報を管理する際の最小単位であるとも言えるでしょう.
ディレクトリは──一部ではフォルダとも呼ばれていますが── 零個以上のファイルをまとめるために使われるファイルの一種で, 「ディレクトリファイル」と呼ぶこともあります. その実体は含まれるファイル名の一覧を格納したファイルです.
UNIX (Linux) においてディレクトリは / (ルートディレクトリ)を頂点とする ツリー構造になっています. 階層付けをすることで管理しやすくしています. / 以下に存在するディレクトリには約束があり, 一般に以下のような ディレクトリが置かれています.
| ディレクトリ名 | 意味 | 
|---|---|
| /root | スーパーユーザー(root)のホームディレクトリ | 
| /boot | 起動時に読み込まれるカーネル等が置かれます. | 
| /dev | Linux では、ハードウェアもファイルとして扱われます。 ここにはそれらのデバイスファイルがまとめられます。 | 
| /etc | 各種の設定ファイルや、起動時に実行されるスクリプト等が置かれます。 | 
| /home | ユーザー毎のホームディレクトリが置かれます。 | 
| /lib | /bin、/sbinなどが使う共有ライブラリが置かれます。 | 
| /mnt | 一時的なマウント用ディレクトリです。 デフォルトで、このディレクトリ内に FD と CD-ROM をマウントするディレクトリが作られています。 (/mnt/cdrom /mnt/floppy) | 
| /proc | カーネルの動作情報を示す、特殊なファイルが置かれます。 それらのファイルは、全てカーネルが作成する仮想ファイルで、 カーネルの機能を制御する目的にも使われます。 ハードディスク空間は一切消費しません。 | 
| /bin | 各種のコマンドで、バイナリ形式の実行ファイルが置かれます。 | 
| /sbin | システム管理用コマンドの実行ファイルが置かれます。 | 
| /tmp | 一時的なファイルの保管場所(一定期間アクセスが無いと削除されます) | 
| /usr | カーネルソースを含め、多くのソフトウェアがここに入ります。 | 
上記のディレクトリの内, 一般ユーザが使用できるのは /home/(ユーザ名)/ のディレクトリで, それ以外はシステムが使う領域になっています.
 
| $ ls / | < どのようなディレクトリが存在するか見る | 
みなさんが UNIX を使って作業するとき, 実際はどこかのディレクトリの中で 作業していることになります. ログインしたときには自分の「ホームディレク トリ」の中にいることになります. ディレクトリの中には「ホームディレクト リ」や「ルートディレクトリ」のように特別な名前が付いているものがいくつか あります.
| 呼び方 | 意味 | 
|---|---|
| ルートディレクトリ | UNIX のディレクトリ構造の頂点に存在するディレクトリ. "/" (スラッシュ)で表す. | 
| ホームディレクトリ | それぞれのユーザ専用のディレクトリ. "~" (にょろ)で表す. | 
| カレントディレクトリ | 現在ユーザが作業しているディレクトリ. pwd コマンドで表示される. "." (ドット)で表す. | 
| 親ディレクトリ | カレントディレクトリの 1 段上のディレクトリ. ".." (ドットドット)で表す. | 
| $ cd ~ $ pwd $ cd /home/*** $ pwd | < ~ を使ってホームディレクトリに移動 < 現在のカレントディレクトリを表示 < ホームディレクトリに移動(*** にはユーザ名を入れる) < 現在のカレントディレクトリを表示 | 
ディレクトリやファイルの指定の仕方には 2 通りあります. 「絶対パス」で指定するか「相対パス」で指定するかです.
|   | 例えば / (ルートディレクトリ)の下の home ディレクトリの下の sugiyama ディレクトリの下の work ディレクトリの下の jupiter.txt というファイルを 読みたいとしましょう. ここで現在自分は / (ルートディレクトリ) の下の home ディレクトリの下の dongury ディレクトリ中にいるものとします. この場合, 以下の 2 通りの方法でファイルを指定することができます. 尚, ディレクトリとディレクトリは / (スラッシュ)で区切ります. | 
| 名前 | 意味 | 
|---|---|
| 絶対パス | ディレクトリやファイルの位置を / (ルートディレクトリ)から見た
        位置として記述する方法. 例えば /home/sugiyama/work/jupiter.txt | 
| 相対パス | ディレクトリやファイルの位置をカレントディレクトリから見た位置として
        記述する方法. 例えば ../sugiyama/work/jupiter.txt | 
| $ cd ~ $ pwd $ echo "hello World" > hello.txt $ cd /home/... $ pwd $ cat ../***/hello.txt $ cat /home/***/hello.txt | < ~ を使ってホームディレクトリに移動 < 現在のカレントディレクトリを表示 < hello.txt というファイルを作成. "Hello World" と書き込む < 友人のホームディレクトリに移動(... には友人のユーザ名を入れる) < 現在のカレントディレクトリを表示 < hello.txt を読む (*** には自分のユーザ名を入れる) < hello.txt を読む (*** には自分のユーザ名を入れる) | 
絶対パス, 相対パスの 2 通りの方法でファイルが読めましたか?
pwd コマンドを実行すると, 絶対パスでカレントディレクトリが表示されます.
| $ pwd /home/dongury | 
cd コマンドの後に移動先のディレクトリ名を指定すると, 指定したディレクトリに 移動することができます. 移動先のディレクトリ名は絶対パス, 相対パスの どちらでもいいです.
例えば /home/dongury から /home/sugiyama/work に移動するには, 以下の 3 通りの方法があります.
| $ cd /home/... $ cd ../*** $ cd ~sugiyama | < 絶対パスを指定して, 友人のホームディレクトリに移動. (... は友人のアカウント名) < 相対パスで指定して, 自分のホームディレクトリに移動. (*** は自分のアカウント名) < ユーザ sugiyama のホームディレクトリへ移動. (sugiyama は存在します) | 
新たなディレクトリを作成する場合は mkdir コマンドを実行します. 引数として作成するディレクトリ名を指定します.
例えば /home/dongury の下に work というディレクトリを作成するには, 以下のようにします. 但しカレントディレクトリは /home/dongury とします.
| $ mkdir /home/***/work $ cd ~ $ mkdir ./work $ mkdir ~***/work | < 絶対パスで指定 < 相対パスで指定 < ユーザ dongury のホームディレクトリから指定 | 
既に存在するディレクトリを削除する場合は rmdir コマンドもしくは rm コマンドを実行します. 引数として削除するディレクトリ名を指定します.
例えば /home/dongury の下の work というディレクトリを削除するには, 以下のようにします. 但しカレントディレクトリは /home/dongury とします. 尚, work ディレクトリの下に存在するファイルごと削除する場合, rm コマンドを実行します.
| $ rmdir /home/***/work $ rmdir work $ rmdir ~***/work $ rm -r /home/***/work $ rm -r work $ rm -r ~***/work | < 絶対パスで指定 (ディレクトリ内が空の場合) < 相対パスで指定 (ディレクトリ内が空の場合) < ユーザ dongury のホームディレクトリから指定 (ディレクトリ内が空の場合) < 絶対パスで指定 (ディレクトリ内のファイルごと削除する場合) < 相対パスで指定 (ディレクトリ内のファイルごと削除する場合) < ユーザ dongury のホームディレクトリから指定 (ディレクトリ内のファイルごと削除する場合) | 
| 最終更新日: 2001/11/02(杉山耕一朗) | Copyright © 2001 inex |