[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

コンピュータIID(UNIXとHTML)第4回

目次
4.1 ファイルとディレクトリ
4.1.1 ディレクトリ
4.1.2 階層的ファイル・システム
4.1.3 パス名
4.1.4 コマンドとパス名
4.1.5 深いディレクトリの作成
4.2 演習4
4.3 レポート課題
4.4 参考文献
索引

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

4.1.1 ディレクトリ

今日のテーマは、ファイルとディレクトリです。 UNIXの場合について説明しますが、ほとんどの内容は、WindowsにもMacにも通用します。

最初の授業で注意した通り、 フォルダディレクトリ は同じものです。 WindowsとMacではフォルダと言い、UNIXではディレクトリと言います。 この授業はUNIXなので、ディレクトリと言うことにします。

ディレクトリを使えば、ファイルの分類ができます。 つまり、関連性のあるファイルを、同じディレクトリに登録するのです。 ディレクトリでファイルを分類すると、

などのメリットがあります。

きちんと分類しておけば、ファイルはすぐに見つけられます。 また、探しているファイルがないことも、すぐに分かります。

関連性のあるファイルをまとめて移動したり、コピーしたりすることは、よく行われます。 それらを同じディレクトリにまとめておけば、そのディレクトリを移動したり、コピーするだけで、済んでしまいます。

一つのディレクトリの中では、違うファイルに同じファイル名は付けられません。 しかし、違うディレクトリの中なら、同じファイル名が付けられます。 他のディレクトリのファイルは気にせずに、ファイル名が付けられるのです。

4.1.2 階層的ファイル・システム

ディレクトリには、ファイルを登録するだけではなく、他のディレクトリも登録できます。 このような、ファイルとディレクトリの仕組みを、 階層的ファイル・システム と呼びます。

階層的ファイル・システムは、まず、 ルート・ディレクトリ と呼ばれるディレクトリから始まります。 ルート・ディレクトリには、いくつかのファイルやディレクトリが登録されます。 それらのディレクトリには、さらにいくつかのファイルやディレクトリが登録されます。 それらのディレクトリには、また、さらにいくつかのファイルやディレクトリが登録されます。 このようにして、ファイルとディレクトリが構成されるのです。

ここで、次の指示にしたがって、ディレクトリを作成してください。 ディレクトリの作成は、コマンドでもできますが、ここではFinderを使います。

  1. Finderのウィンドウを開きます。
  2. ホーム・ディレクトリを開き、ディレクトリcomp2dを開きます。
  3. ディレクトリFranceとディレクトリGermanyを作成します。
  4. "リヨンはフランスの都市です。"という内容のファイルLyon.txtを作成し、ディレクトリFranceの中に保存します。
  5. "マルセイユはフランスの都市です。"という内容のファイルMarseille.txtを作成し、ディレクトリFranceの中に保存します。
  6. "フランクフルトはドイツの都市です。"という内容のファイルFrankfurt.txtを作成し、ディレクトリGermanyの中に保存します。
  7. "ハンブルクはドイツの都市です。"という内容のファイルHamburg.txtを作成し、ディレクトリGermanyの中に保存します。

階層的ファイル・システムは、しばしば木の形で表現されます。 ただし、自然界の木とは上下が逆で、根本が上にあり、枝は下に伸びます。 根本はルート・ディレクトリを表し、枝分れや枝の先はファイルやディレクトリを表します。

先ほど作成したファイルとディレクトリを木で表しますと、次のようになります。

           |
      +----+----+---...
      |         |
 Applications Users
      :         |
           +----+----+---...
           |         |
        b08a001   b08a002
           |         :
      +----+----+---------+---...
      |         |         |
   Desktop  Documents   comp2d
      :         :         |
            +-------------+-------------+-------------+---...
            |                           |             |
          France                     Germany      test02.txt
            |                           |
     +------+------+             +------+------+
     |             |             |             |
  Lyon.txt   Marseille.txt Frankfurt.txt  Hamburg.txt

なお、学生番号のディレクトリは、その人のホーム・ディレクトリです。 ホーム・ディレクトリ とは、利用者が自由に利用できるディレクトリであることを、思い出してください。

4.1.3 パス名

パス名 とは、階層的ファイル・システムにおいて、ファイルやディレクトリの位置関係を表すものです。 パス名には、絶対パス名と相対パス名があります。

絶対パス名 とは、ルート・ディレクトリから出発し、目的のファイルやディレクトリに到着するまで、ディレクトリ名を書き並べたものです。 絶対パス名の最初は"/"で、最後は目的のファイル名やディレクトリ名です。

例えば、ファイルLyon.txtの絶対パス名は、

/Users/b08a001/comp2d/France/Lyon.txt

です。 ディレクトリGermanyの絶対パス名は、

/Users/b08a001/comp2d/Germany

です。

ホーム・ディレクトリの絶対パス名は、/Users/b08a001です。 ルート・ディレクトリの絶対パス名が、"/"となることに注意してください。

相対パス名 とは、基準となるディレクトリから出発し、目的のファイルやディレクトリに到着するまで、ディレクトリ名を書き並べたものです。 相対パス名の最後は目的のファイル名やディレクトリ名です。

例えば、ホーム・ディレクトリ/Users/b08a001を基準としますと、ファイルHamburg.txtの相対パス名は、

comp2d/Germany/Hamburg.txt

です。 ディレクトリFranceの相対パス名は、

comp2d/France

です。

基準ディレクトリに登録されているファイルについては、その相対パス名はファイル名だけになります。 同様に、基準ディレクトリに登録されているディレクトリについては、その相対パス名はディレクトリ名だけになります。

なお、パス名の書き方は、Windows, Mac, UNIXの間で少し異なります。 違うのは、区切り記号です。

表 4.1  OSごとのパス名の書き方
OS パス名
Windows C:\dir1\dir2\dir3
Mac :dir1:dir2:dir3
UNIX /dir1/dir2/dir3

4.1.4 コマンドとパス名

これまで、色々なコマンドを紹介してきました。 その中には、引数にファイル名を書いたものもありました。 実は、そのようなコマンドでは、ファイル名の代わりにパス名が書けます。

例えば、ファイルの内容を表示するコマンドcatなら、次のようになります。

asiaa1:~/comp2d b08a001$ cat /Users/b08a001/comp2d/France/Marseille.txt
マルセイユはフランスの都市です。
asiaa1:~/comp2d b08a001$

コマンドの引数には、絶対パス名だけではなく、相対パス名も書けます。 そのためには、基準ディレクトリを知る必要があります。 シェルでは、基準ディレクトリのことを、 カレント・ディレクトリ と呼びます。

pwdコマンドを紹介したとき、このコマンドが表示したのは、カレント・ディレクトリの絶対パス名です。

asiaa1:~/comp2d b08a001$ pwd
/Users/b08a001/comp2d
asiaa1:~/comp2d b08a001$

シェルの最初のカレント・ディレクトリは、普通はホーム・ディレクトリです。

例えば、ファイルFrankfurt.txtの内容を表示するには、次のように相対パス名を書きます。

asiaa1:~/comp2d b08a001$ pwd
/Users/b04a001/comp2d
asiaa1:~/comp2d b08a001$ cat Germany/Frankfurt.txt
フランクフルトはドイツの都市です。
asiaa1:~/comp2d b08a001$

4.1.5 深いディレクトリの作成

例えば、ディレクトリUKの中にディレクトリScotlandを作成したいとします。 つまり、作成したいのは、ディレクトリ

/Users/b08a001/comp2d/UK/Scotland

です。 これをmkdirコマンドで一気に作成すると失敗します。

asiaa1:~/comp2d b08a001$ pwd
/Users/b04a001/comp2d
asiaa1:~/comp2d b08a001$ mkdir UK/Scotland
mkdir: UK: No such file or directory
asiaa1:~/comp2d b08a001$

ディレクトリを一つ一つ作成すると、うまくいきます。

asiaa1:~/comp2d b08a001$ pwd
/Users/b04a001/comp2d
asiaa1:~/comp2d b08a001$ mkdir UK
asiaa1:~/comp2d b08a001$ mkdir UK/Scotland
asiaa1:~/comp2d b08a001$

カレント・ディレクトリを変更する方法もあります。

asiaa1:~/comp2d b08a001$ pwd
/Users/b04a001/comp2d
asiaa1:~/comp2d b08a001$ mkdir UK
asiaa1:~/comp2d b08a001$ cd UK
asiaa1:~/comp2d/UK b08a001$ mkdir Scotland
asiaa1:~/comp2d/UK b08a001$ cd ..
asiaa1:~/comp2d b08a001$

4.2 演習4

コマンドを使って適切なディレクトリを作成し、Jeditを使って適切なファイルを作成・保存して、以下の通りのコマンド操作ができるようにしてください。 適切でなければ、"No such file or directory"のようなメッセージが表示されてしまいます。 学生番号は、自分のものに読み替えてください。

asiaa1:~/comp2d b08a001$ cat /Users/b08a001/comp2d/USA/California/LosAngeles.txt
ロサンゼルスは米国カリフォルニア州の都市です。
asiaa1:~/comp2d b08a001$ cat /Users/b04a001/comp2d/USA/Florida/Miami.txt
マイアミは米国フロリダ州の都市です。
asiaa1:~/comp2d b08a001$

4.3 レポート課題

今日の演習4の答案(「ターミナル」画面のコピー)をメールで提出してください。 差出人は学内のメール・アドレス(b08a001@cis.twcu.ac.jpなど)とし、宛先はkonishi@cis.twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(10月17日)を明記してください。


4.4 参考文献


[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

2008年10月17日更新
小西 善二郎 <konishi@cis.twcu.ac.jp>
Copyright (C) 2008 Zenjiro Konishi. All rights reserved.