ファイルとディレクトリ

■ファイルとディレクトリ

ファイル(file)は、コンピュータでデータを保存するための基本的な仕組み である。ファイルには、次の2つの重要な側面がある。 ファイルに名前を付ける働きを持っているソフトウェア的な仕掛けは、ディレ クトリ(directory)と呼ばれている。ディレクトリは、フォルダ(folder) と呼ばれることもある。

ディレクトリには、ファイルの名前文字列が登録されている。ディレクトリの 中にディレクトリの名前を登録することができるので、全体ではディレクトリ は、全体では木構造(tree structure)になっている。木構造のディレクトリを、 階層化ディレクトリ(hierarchical directory)ということもある。

図1-1 ファイルとディレクトリの木

図1-1 ファイルとディレクトリの木

ファイルは、必ず葉(leaf)になる。ディレクトリは、中間節になりうる節 (node)である。特殊な節として、根(root)がある。これを、ルート・ディレク トリ(root directory)という。ルート・ディレクトリは、UNIXでは、「/」 で表す。 UNIXでは、ファイルの名前は、次のように表現される。

/ディレクトリ名1/ディレクトリ名2/ディレクトリ名3/個別ファイル名1 
これは、次のようにして見つかったファイルを表わしている。
  1. ルートディレクトリ(/)から出発す。
  2. 「ディレクトリ名1」という名前の節に進む。
  3. 「ディレクトリ名2」という名前の節に進む。
  4. 「ディレクトリ名3」という名前の節に進む。
  5. 「個別ファイル名1」という名前の節に進む。

◆ホーム・ディレクトリと「~(tilde)」

個人のファイルの名前を登録するディレクトリを、ホーム・ディレクトリ (home directory)という。

自分のホーム・ディレクトリは、~/ または、~ で表わされる。「~」は、画面やキーボードで形が変わること がある。普通は、 (tilde) または (上線) と表示される。

たとえば、「~/」、または、単に「~」で、「自分」のホーム・ディレクトリ を表わす。「less ~/mbox」で、ホーム・ディレクトリにあるmboxという名前 のファイルを表示させることができる。

「~」には、他のユーザのホーム・ディレクトリを示す機能もある。たとえば、 次のように打つと、ユーザ名s976543 のホーム・ディレクトリの内容を表示す ることができる。

----------------------------------------------------------------------
% ls ~s976543 [←]
----------------------------------------------------------------------
注意すべきことは、「~/mbox」と「~mbox」(/なし)の意味が違うということ である。前者は、「自分のホーム・ディレクトリの下にあるmbox」という意味 である。後者は、「mboxという名前のログイン名を持つ人のホーム・ディレク トリ」である。

★練習問題

自分のホーム・ディレクトリの内容を「~ログイン名」という形式を使って表 示させなさい。

★練習問題

隣にすわっている人のログイン名を聞き、その人のホーム・ディレクトリの内 容を表示しなさい。

■カレント・ワーキング・ディレクトリとcdコマンド

UNIXでは、ディレクトリとファイルは、1つの大きな木構造になる。この木の 中で、注目するディレクトリをプロセス(実行中のプログラム)ごとに1つだ け決めることができる。これを、カレント・ワーキング・ディレクトリ(the current working directory)と呼ぶ。

ls コマンドは、引数を与えなかった場合、カレント・ワーキング・ディレク トリの内容を表示す。ログインした直後は、カレント・ワーキング・ディレク トリは、ホーム・ディレクトリになっている。よって、ログインした直後は、 次の2つは、同じ結果になる。

  1. ls ~/
  2. % ls

カレント・ワーキング・ディレクトリを表示するには、pwd コマンドを使う。

----------------------------------------------------------------------
% pwd   [←]
/home/home1/s976543
% []
----------------------------------------------------------------------
カレント・ワーキング・ディレクトリは、変えることができる。それには、cd または chdir コマンドを使う。次の2つは同じ結果になる。
  1. % ls / [←]
  2. % cd / [←]
    % ls
一度だけ ls を打つだけなら、cd でカレント・ワーキング・ディレクトリを 変える必要は少ない。しかし、何度も ls を打ったり、何度も less を打った りする時に、便利さが出てくる。たとえば、次のファイルを調べたいとする。 cd を使わない場合は、こうなる。 cd を使う場合は、こうなる。 このように、ディレクトリの名前の部分(/etc)を省略することができる。 長いファイル名を打つ代りにも、cd を使うと楽になることがある。たとえば、 /usr/local/man/man1/mnews.1 という名前のファイルを less コマンドで見る ことを考える。
----------------------------------------------------------------------
% less /usr/local/man/man1/mnews.1   [←]
----------------------------------------------------------------------
このような長い名前のファイル名を打つ途中でファイル名を打ち間違えた場合、 打ち直すのが大変である。
----------------------------------------------------------------------
% less /usr/locl/man/man1/mnews.1   [←]
/usr/locl/man/man1/mnews.1: No such file or directory 
% less /usr/local/man/man1/mnews.1   [←]
% []
----------------------------------------------------------------------
cd を使うと、次のようになる。
----------------------------------------------------------------------
% cd /   [←]
% cd usr   [←]
% cd locl   [←]
locl: No such file or directory.
% cd local   [←]
% cd man   [←]
% cd man1   [←]
% less mnews.1  [←]
% []
----------------------------------------------------------------------
なお、ファイルの名前で、/から始まっていて、ルート・ディレクトリからの パス名を、絶対パス名という。/以外から始まっていて、カレント・ワーキン グ・ディレクトリからのパス名を、相対パス名という。

cd コマンドに、引数を与えなかった場合、カレント・ワーキング・ディレク トリは、ホーム・ディレクトリになる。よって、次の2つは、同じである。

★練習問題

~/www/index.html を mule で編集することを考る。cd を使う場合、どうすれ ばよいか。

★練習問題

/usr/local/bin を ls で表示したい。cd を使う場合、どういう方法があるか。

■「.」と「..」

各ディレクトリには、「.」 と「..」という特殊なディレクトリが含まれてい る。「.」 は、自分自身を表わすものである。「..」 は、親ディレクトリ (根に近いディレクトリ)を表わす。

「.」は、cp でディレクトリ名を指定する時によく使われる。次の4つは、同 じような効果がある。

  1. % cp ~s976543/index.html ~/www/index.html [←]
  2. % cp ~s976543/index.html ~/www/ [←]
  3. % cd ~/www [←] % cp ~s976543/index.html index.html [←]
  4. % cd ~/www [←]
    % cp ~s976543/index.html . [←]
「..」 は、cd コマンドで親ディレクトリにもどる時につかわれる。
----------------------------------------------------------------------
% cd /usr/local/bin   [←]
% pwd   [←]
/usr/local/bin
% cd ..   [←]
% pwd  [←]
/usr/local
% cd ../..   [←]
% pwd   [←]
/
% []
----------------------------------------------------------------------

[UNIX入門のページにもどる]


[目次] [ログインとログアウト] [対話とシェル] [簡単なコマンド] [ファイルとディレクトリ] [木の探索] [操作] [chmod]
↑[手引きのページ] ・[UNIX入門] →[手引き追加情報(サーバ関連)] [手引き追加情報]
Last updated: 1997/10/20 00:40:55
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>