今日のテーマは、ファイルとディレクトリです。 UNIXの場合について説明しますが、ほとんどの内容は、WindowsにもMacにも通用します。
最初の授業で注意した通り、 フォルダ と ディレクトリ は同じものです。 WindowsとMacではフォルダと言い、UNIXではディレクトリと言います。 この授業はUNIXなので、ディレクトリと言うことにします。
ディレクトリを使えば、ファイルの分類ができます。 つまり、関連性のあるファイルを、同じディレクトリに登録するのです。 ディレクトリでファイルを分類すると、
などのメリットがあります。
きちんと分類しておけば、ファイルはすぐに見つけられます。 また、探しているファイルがないことも、すぐに分かります。
関連性のあるファイルをまとめて移動したり、コピーしたりすることは、よく行われます。 それらを同じディレクトリにまとめておけば、そのディレクトリを移動したり、コピーするだけで、済んでしまいます。
一つのディレクトリの中では、違うファイルに同じファイル名は付けられません。 しかし、違うディレクトリの中なら、同じファイル名が付けられます。 他のディレクトリのファイルは気にせずに、ファイル名が付けられるのです。
ディレクトリには、ファイルを登録するだけではなく、他のディレクトリも登録できます。 このような、ファイルとディレクトリの仕組みを、 階層的ファイル・システム と呼びます。
階層的ファイル・システムは、まず、 ルート・ディレクトリ と呼ばれるディレクトリから始まります。 ルート・ディレクトリには、いくつかのファイルやディレクトリが登録されます。 それらのディレクトリには、さらにいくつかのファイルやディレクトリが登録されます。 それらのディレクトリには、また、さらにいくつかのファイルやディレクトリが登録されます。 このようにして、ファイルとディレクトリが構成されるのです。
ここで、次の指示にしたがって、ディレクトリを作成してください。 ディレクトリの作成は、コマンドでもできますが、今日はFinderを使います。
階層的ファイル・システムは、しばしば木の形で表現されます。 ただし、自然界の木とは上下が逆で、根本が上にあり、枝は下に伸びます。 根本はルート・ディレクトリを表し、枝分れや枝の先はファイルやディレクトリを表します。
先ほど作成したファイルとディレクトリを木で表しますと、次のようになります。
| +----+----+---... | | Applications Users : | +----+----+---... | | b04a001 b04a002 | : +----+----+---------+---... | | | Desktop Documents comp2d : : | +-------------+-------------+-------------+---... | | | France Germany english01.txt | | +------+------+ +------+------+ | | | | Lyon.txt Marseille.txt Frankfurt.txt Hamburg.txt
なお、学生番号のディレクトリは、その人のホーム・ディレクトリです。 ホーム・ディレクトリ とは、利用者が自由に利用できるディレクトリであることを、思い出してください。
パス名 とは、階層的ファイル・システムにおいて、ファイルやディレクトリの位置関係を表すものです。 パス名には、絶対パス名と相対パス名があります。
絶対パス名 とは、ルート・ディレクトリから出発し、目的のファイルやディレクトリに到着するまで、ディレクトリ名を書き並べたものです。 絶対パス名の最初は"/"で、最後は目的のファイル名やディレクトリ名です。
例えば、ファイル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の間で少し異なります。 違うのは、区切り記号です。
OS | パス名 |
---|---|
Windows | C:\dir1\dir2\dir3 |
Mac | :dir1:dir2:dir3 |
UNIX | /dir1/dir2/dir3 |
これまで、色々なコマンドを紹介してきました。 その中には、引数にファイル名を書いたものもありました。 実は、そのようなコマンドでは、ファイル名の代わりにパス名が書けます。
例えば、ファイルの内容を表示するコマンド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:~%
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:~%
特に指定しなければ、ファイル名やディレクトリ名は、アルファベット順に並びます。 また、設定によっては、ディレクトリ名に"/"が付きます。
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:~%
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の答案(「ターミナル」画面のコピー)をメールでkonishi@twcu.ac.jp宛に提出してください。 メールを送るときは、大学のパソコンを使うか、大学のメール・サーバに接続するかして、差出人が大学のメール・アドレスになるようにしてください。 メールの本文には、学生番号、氏名、科目名、授業日(11月1日)を明記してください。