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

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

目次
6.1 ファイルとディレクトリ
6.1.1 ディレクトリ
6.1.2 階層的ファイル・システム
6.1.3 パス名
6.1.4 コマンドとパス名
6.1.5 ディレクトリの表示
6.1.6 ディレクトリの変更
6.2 演習6
6.3 レポート課題
6.4 参考文献
索引

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

6.1.1 ディレクトリ

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

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

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

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

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

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

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

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

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

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

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

  1. Finderのウィンドウを開きます。
  2. ホーム・ディレクトリを開き、ディレクトリcomp2dを開きます。
  3. ディレクトリFranceとディレクトリGermanyを作成します。
  4. "Lyon is a city of France."という内容のファイルLyon.txtを作成し、ディレクトリFranceの中に保存します。
  5. "Marseille is a city of France."という内容のファイルMarseille.txtを作成し、ディレクトリFranceの中に保存します。
  6. "Frankfurt is a city of Germany."という内容のファイルFrankfurt.txtを作成し、ディレクトリGermanyの中に保存します。
  7. "Hamburg is a city of Germany."という内容のファイルHamburg.txtを作成し、ディレクトリGermanyの中に保存します。

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

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

           |
      +----+----+---...
      |         |
 Applications Users
      :         |
           +----+----+---...
           |         |
        b04a001   b04a002
           |         :
      +----+----+---------+---...
      |         |         |
   Desktop  Documents   comp2d
      :         :         |
            +-------------+-------------+-------------+---...
            |                           |             |
          France                     Germany    english01.txt
            |                           |
     +------+------+             +------+------+
     |             |             |             |
  Lyon.txt   Marseille.txt Frankfurt.txt  Hamburg.txt

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

6.1.3 パス名

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

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

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

/Users/b04a001/comp2d/France/Lyon.txt

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

/Users/b04a001/comp2d/Germany

です。

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

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

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

comp2d/Germany/Hamburg.txt

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

comp2d/France

です。

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

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

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

6.1.4 コマンドとパス名

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

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

b04a001@AsiaA1:~% cat /Users/b04a001/comp2d/France/Marseille.txt
Marseille is a city of France.
b04a001@AsiaA1:~%

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

pwdコマンド (Print Working Directory)は、カレント・ディレクトリを表示します。

b04a001@AsiaA1:~% pwd
/Users/b04a001
b04a001@AsiaA1:~%

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

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

b04a001@AsiaA1:~% pwd
/Users/b04a001
b04a001@AsiaA1:~% cat comp2d/Germany/Frankfurt.txt
Frankfurt is a city of Germany.
b04a001@AsiaA1:~%

6.1.5 ディレクトリの表示

Finderを使えば、ディレクトリを開くことができます。 ディレクトリを開くことは、ディレクトリの登録内容を表示することです。 これと同じことは、コマンドでもできます。

lsコマンド (LiSt)は、ディレクトリの登録内容を表示します。 形式は、

ls directory

です。 ディレクトリの指定を省略しますと、カレント・ディレクトリの登録内容を表示します。 また、ディレクトリの代わりにファイルを指定しますと、そのファイル名を表示します。

b04a001@AsiaA1:~% pwd
/Users/b04a001
b04a001@AsiaA1:~% ls
Desktop/    Library/    comp1/
Documents/  Maildir/    comp2d/
b04a001@AsiaA1:~% ls comp2d
France/        english01.txt  month01.txt    weather01.txt
Germany/       japanese01.txt score01.txt
b04a001@AsiaA1:~% ls comp2d/France
Lyon.txt      Marseille.txt
b04a001@AsiaA1:~%

特に指定しなければ、ファイル名やディレクトリ名は、アルファベット順に並びます。 また、設定によっては、ディレクトリ名に"/"が付きます。

6.1.6 ディレクトリの変更

Finderを使ってディレクトリを開くことは、基準ディレクトリを変更することでもあります。 これと同じことも、コマンドでできます。

cdコマンド (Change Directory)は、カレント・ディレクトリを変更します。 形式は、

cd directory

です。 ディレクトリの指定を省略しますと、ホーム・ディレクトリに変更します。

b04a001@AsiaA1:~% pwd
/Users/b04a001
b04a001@AsiaA1:~% ls
Desktop/    Library/    comp1/
Documents/  Maildir/    comp2d/
b04a001@AsiaA1:~% cd comp2d
b04a001@AsiaA1:~/comp2d% pwd
/Users/b04a001/comp2d
b04a001@AsiaA1:~/comp2d% ls
France/        english01.txt  month01.txt    weather01.txt
Germany/       japanese01.txt score01.txt
b04a001@AsiaA1:~/comp2d% cd Germany
b04a001@AsiaA1:~/comp2d/Germany% pwd
/Users/b04a001/comp2d/Germany
b04a001@AsiaA1:~/comp2d/Germany% ls
Frankfult.txt  Hamburg.txt
b04a001@AsiaA1:~/comp2d/Germany%

設定によっては、プロンプトにカレント・ディレクトリが表示されます。

cdコマンドで、相対パス名を指定しますと、カレント・ディレクトリは下に下に行き、元に戻れません。 ここで使うのが、特別なディレクトリ名".."です。 これは、一つ上のディレクトリを表します。

b04a001@AsiaA1:~/comp2d/Germany% pwd
/Users/b04a001/comp2d/Germany
b04a001@AsiaA1:~/comp2d/Germany% cd ..
b04a001@AsiaA1:~/comp2d% pwd
/Users/b04a001/comp2d
b04a001@AsiaA1:~/comp2d% cd ..
b04a001@AsiaA1:~% pwd
/Users/b04a001
b04a001@AsiaA1:~%

6.2 演習6

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

b04a001@AsiaA1:~% cat /Users/b04a001/comp2d/USA/California/LosAngeles.txt
Los Angeles is a city of California, USA.
b04a001@AsiaA1:~% cat /Users/b04a001/comp2d/USA/Florida/Miami.txt
Miami is a city of Florida, USA.
b04a001@AsiaA1:~%

余力のある人は、米仏独以外の国の都市を一つ以上考え、同様の作業をしてください。


6.3 レポート課題

今日の演習6の答案(「ターミナル」画面のコピー)をメールでkonishi@twcu.ac.jp宛に提出してください。 メールを送るときは、大学のパソコンを使うか、大学のメール・サーバに接続するかして、差出人が大学のメール・アドレスになるようにしてください。 メールの本文には、学生番号、氏名、科目名、授業日(11月1日)を明記してください。


6.4 参考文献


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

2006年11月1日更新
小西 善二郎 <konishi@twcu.ac.jp>
Copyright (C) 2006 Zenjiro Konishi. All rights reserved.