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

コンピュータ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.