■ ワーキングディレクトリ
さて、重要なFTPコマンドはほとんど前回まででやってしまったわけだ。
前回までというと、USER、PASS、QUIT、PORT、TYPE、PASV、RETR、STOR、でしたっけ。
うむ。今回は、これら以外でよく使われるコマンドを説明しよう。
え〜っと。ユーザ認証に、データ転送でしたよね、いままでのコマンド。
他は何があるんですか?
まず、ディレクトリの操作だな。
でぃれくとりの操作?
一般的、というかWindowsではディレクトリのことをフォルダと言うな。つまり、接続しているFTPサーバの保存先のことだ。この保存先に対しファイルをアップロードしたり、保存先のファイルをダウンロードしたりする。
ははぁ。ファイルを置いたり、取ってきたりする対象のフォルダってことですね。
うむ。このディレクトリ(フォルダ)のことを、ワーキングディレクトリという。
わーきんぐでぃれくとり。
働くディレクトリ?
まぁ、働くといえばそうなんだが。普通は作業用ディレクトリと言うな。もしくは今使っているディレクトリなのでカレントディレクトリとも言う。
ともかく、このワーキングディレクトリを変更するコマンドがある。
- CWD ディレクトリ名
- CDUP
役割的には、CWDはDOSコマンドの「cd」。CDUPは「cd ..」だ。
[Figure60-01:CWDとCDUP]
CWDで今のフォルダの指定した下のフォルダヘ。CDUPで1つ上のフォルダへ、ですね。
そういうことだ。
他にもフォルダ関連のコマンドはいくつかある。
- PWD
- MKD ディレクトリ名
- RMD ディレクトリ名
PWDは「ワーキングディレクトリ名表示」。MKDは「ディレクトリ作成」。RMDは「ディレクトリ削除」だな。
ははぁ。なんか普通にフォルダをいじれちゃうんですねぇ。
そうだな。
CUI環境のMS-DOSやUNIXでディレクトリを操作しているのと同じ感覚でディレクトリを操作できるな。
なるほど。
ポイントは、DTPだ。FTPのDTPがOS間の差異を吸収するおかげで、サーバがWindowsなのかUNIXなのか全く関係なく、ディレクトリをCWDやMKDなどのコマンドで操作できる、ということだ。
ファイルマウントしない、クライアント・サーバ型の利点、ってやつでしたっけ。
うむ。ちなみにサーバ側で一番上のディレクトリはFTPサーバソフトで設定される。
例えば、MicorsoftのIISでは以下の画面で設定される。
[Figure60-02:IISでのホームディレクトリの設定]
例えば、上の画像では「C:\inetpub\ftproot」が最上位のディレクトリになる。
カレントディレクトリがこの「C:\inetpub\ftproot」で、「CDUP」コマンドを行った場合。
行った場合?
そのまま、「C:\inetpub\ftproot」になる。そこから上へは上がれない。
え? 「C:\inetpub」になるんじゃないんですか?
ならない。設定したディレクトリが最上位だ。例えローカルのハードディスク上でそれより上のディレクトリがあったとしても、それ以上はあがらない。
ははぁ。なんでです?
それにより、FTPでアクセスできるディレクトリの範囲を限定できるわけだな。
むやみやたらにアクセスできたら困るだろう。
なるほど。
■ リスト
さて、ネット君。データコネクションで転送するデータはファイル以外にもう1つあったな?
ありましたっけ?
…。
…。
…。
…。
…わかった。私の負けだ。
やりぃ。
威張るな。
データコネクションが転送するもう1つのデータは、ワーキングディレクトリのファイル一覧だ。
あ〜、そういえばそんな話をどこかで聞いたような。
FTPサーバにファイル一覧を要求するコマンドは次のコマンドだ。
役割的にはMS-DOSの「dir」コマンドと同じだ。
- LIST
- NLST
「LIST」と「NLST」。
どう違うんです?
LISTはファイル名とその情報を、NLSTは名前のみだ。
例えば、同じワーキングディレクトリでも「LIST」と「NLST」ではこのように違う。
[Figure60-03:LISTとNLST]
なんか、「LIST」は色々表示されますね。「NLST」は本当に名前だけなんだ。
うむ。確かにそうだが、「NLST」でもオプションを使えば、「LIST」と同じ情報を得ることができる。
じゃあ、オプションを使えばどっちでも変わらない、ってことですね。
そういうことになるな。
LISTはデータコネクションで転送する、さらにデータタイプはASCIIということを忘れないように。
了解です。
■ FTPによるデータ転送
主要なコマンドは大体上の説明で終わりだ。
最後に、FTPの流れをもう一度おさらいといこう。
[Figure60-04:FTPの流れ]
なんというか。キッチリとコマンドとレスポンスを交換しあってますよね。
そうだな。はっきりいって、FTPは複雑なプロトコルだ。
ほとんどのTCP/IPプロトコルと違い、2本のコネクションを使用するからな。
そうなんですか?
他は複数のコネクションを使うことはないんですか?
うむ、ない。FTPは2本のコネクションを使うことにより、柔軟なデータ転送を行うことが可能だ。
その分、複雑にならざるをえないため、制御コネクションでキッチリと制御を行っているのだよ。
そうですよね。コマンドには必ずレスポンスがついてくるし、データ転送にも必ず始めと終わりにはレスポンスがつきますよね。
うむ。さらにOSに全く依存しない形でのデータ転送という役割も担う。
現在の新しいプロトコルもやはりOSに依存しない形のデータ転送が多いが、FTPはその先駆けとなったプロトコルなのだよ。
なるほど。重要なプロトコルですね。
うむ。発表されてから長い月日がたっていても、いまだにFTPの役割は変わっていない。
やはりファイル転送といえばFTPなのだよ。
ですね。
さて、今回でFTPはお終いにしよう。
了解です。
次回は、さて何のプロトコルにするかな?
決めてないんですか?
ふふふ、さてな。
ではまた次回。
いぇっさ〜。
3分間ネットワーキングでした〜♪
- ディレクトリ
-
[Directory]
「登録簿」。ディスク上に保存されるファイルなどの情報が記載される。ディレクトリを読み出すことにより、保存されているファイルの一覧を入手できる。
Windowsなどでは「フォルダ」と呼ばれる。
- ワーキングディレクトリ
- [Working Directory]
- カレントディレクトリ
-
[Current Directory]
[Current]は「現在の」「今の」。
- 一番上のディレクトリ
- ホーム[home]もしくはルート[root]ディレクトリと呼ばれる。
- オプション
- 「NLST -al」で「LIST」と同じ表示。
- ネット君の今日のポイント
-
- サーバ側の現在ファイルの受け渡しが可能なフォルダをワーキングディレクトリという。
- CWDやCDUPでワーキングディレクトリを変更できる。
- MKDやRMDでディレクトリの追加削除ができる。
- LISTかNLSTでワーキングディレクトリのファイル一覧を取得する。
- サーバ側の現在ファイルの受け渡しが可能なフォルダをワーキングディレクトリという。