- 2008-02-15 (金) 11:42
- ネットワークコマンドのいろは
ftpコマンドとは
ftpサーバに対してftp接続を行うことができるコマンドです。ftpコマンドでftp接続すると、対話型で処理を進めることができるので、ftpコマンドと言うより、ftpクライアントソフトウェアと考えることもできるでしょう。今でこそFFFTPなどのftpクライアントアプリケーションがありますが、パスワードなどの設定が必要なうえ、OSにインストールされていないこともあります。しかしftpコマンドならWindowsを搭載しているコンピュータは必ず使用できます。主な機能は次のとおりです。
- ftpサーバに対してftp接続を行います。
- 対話型で、さまざまなコマンドを実行することができます。
- ファイルにコマンドを記述しておき、バッチファイルt的なデータ転送を行うことができます。
コマンドの形式と事例
ftp (option) [hostname/IPaddress]
ftpとオプション及びパラメータの間には半角スペースを入れて活用してください。
■利用事例(リムネットのFTPサーバへの接続)
コマンドプロンプトから、ftpコマンドにパラメメータとしてサーバ名をつけて入力すると、指定したサーバにftp接続することができます。ここでは、リムネットのftpサーバにftp接続しています。サーバに接続したあとで、ファイルの一覧が表示させ、さらにログアウトするまでお行います。
また、このftpコマンドには、「対話型」というモードがあります。対話型とは、ftpのコマンドプロンプト「>ftp」が表示され、ftpが使用できるサブコマンドをダイレクトに入力して、ftpコマンドと直接やり取りすることができるのです。これに対してコマンドプロンプトから、「ftp」というコマンドのあとにコマンドのあとにサブコマンドを入力して、さらにオプションやパラメータを入力して実行することになります。

※1:パラメータとしてリムネットのFTPサーバ名(ftp.nk.rim.or.jp)を指定してFTPサーバにログインしています。
※2:サーバはユーザ名を尋ねてくるので、ここでは「*****」と入力します。
※3:さらにパスワードを入力します。
※4:FTPサーバへのログインが正常に行われた事が確認できます。
※5:ホームページデータ設置場所になる「public_html」ディレクトリに移動したいので「cd public_html」を入力します。
※6:プロンプト「ftp>」に変更されています。ftpコマンドのサブコマンド「dir」を入力すると、FTPサーバ上にあるファイルの一覧が表示されます。
※7:ファイルの一覧リストが正しく転送されて表示されましたので、その転送スピードが報告されています。
※8:「quit」のと入力しサーバにログアウトします。
■対話型でファイルを送受信する。
ftpコマンドは、コマンドプロンプトから最初に「ftp」と入力して、対話型にしてから、多くのサブコマンドを使用してファイルのいろいろな操作を行うことができます。ここでは、サブコマンドである「get」や「put」を使って、実際にファイルを送受信してみましょう。

※カレントディレクトを「c:¥」にしています。Cドライブの直下にファイルを用意してください。
※1:現在サーバにあるファイルの一覧です。
※2:「get」コマンドで、FTPサーバからファイル「index.html」ファイルを取得します。
※3:「put」コマンドで、コンピュータ上にあるファイル「test.html」ファイルをFTPサーバ上に転送しています。
※4:サーバの一覧に「test.html」ファイルが増えた事が確認できると思います。
オプションとパラメータの機能
ftpとオプション及びパラメータの間には半角スペースを入れて活用してください。
-A
FTPサーバに匿名(Annonymous)ユーザーとしてログインします。
-a
FTPのデータ接続する相手を決めるときに、任意のローカルインターフェイスを使用できるようにします。
-d
FTPクライアントコンピュータと、FTPサーバの間でやり取りされているすべてのコマンドを表示して確認することができるようにします。
-g
ローカルファイル(ユーザーのコンピュータ上のファイル)名およびパス名で、「*」と「?」をワイルドカードとして使えないようにします。ftpサブコマンドの「glob」を参照してください。
-s:ファイル名
ftpコマンドが含まれているテキストファイルを指定して実行します。こちらのコマンドは、ftpを起動すると自動的に実行されます。このファイルネームにはスペースを含めることはできません。ftpコマンドでは、コマンドの入力をキーボードからの入力ではなくファイルから読み取る、リダイレクト演算子(< )を使うかわりに、このパラメータを使いましょう。
-v
FTPサーバの状況を確認するコマンドの応答などを表示しないようにします。
-w:ウィンドウサイズ
データの転送バッファのサイズを指定します。既定のサイズは、4096バイトです。
/?
コマンドプロンプトのヘルプを表示します。
■サブコマンドの一覧と機能
ftpコマンドのサブコマンドは次の通りです。ftpが接続された状態で、「?」または「help」と入力すると、使用できるすべてのコマンドが表示されます。さらに「? サブコマンド」と入力すると、そのサブコマンドのさらに詳しいヘルプが参照できるものもあります。また、ftpのサブコマンドには、リモートコンピュータ側に作用するコマンドと、ローカルコンピュータ側のみで機能するものがあるので注意が必要です。
ここでのリモートコンピュータは、ftpで接続しているFTPサーバのことで、ローカルコンピュータは、ユーザーが使っているコンピュータのことです。また、リモートファイルは、FTPサーバ上のファイルのことで、ローカルファイルは、ユーザーのコンピュータ上のファイルのことです。
- !
- ftpから、一時DOS状態に戻ります。DOSからftpに完全に戻るにはサブコマンドの「exit」を入力します。また「! [DOSコマンド]」を入力すると、DOSコマンドをftp上で一時的に実行できます。
- ?
- ftpサブコマンドのヘルプを表示させます。
- append
- 現在のファイル転送モードを使って、ローカルファイルをリモートコンピュータのファイルに追加します。
- ascii
- ファイル転送の種類をASCIIコードに指定します。テキストファイルを転送する場合には、ASCII形式に変更する必要があります。
- bell
- ファイルの転送のコマンドが終了するごとに、音を鳴らすかどうかをの設定を切り替えることができます。設定は無効になっています。
- binary
- ファイルの転送の種類をバイナリコードに指定します。実行可能ファイルを転送する場合には、バイナリ形式に変更する必要があります。
- bye
- リモートコンピュータとの接続を終了して、ftpを終了します。
- cd
- リモートコンピュータ上の作業用ディレクトリを変更します。
- close
- リモートコンピュータとのFTP接続を終了し、「ftp>」のプロンプトに戻ります。
- debug
- コンピュータに送信されるコマンドを表示するかどうかを切り替えます。
- delete
- リモートコンピュータ上にある、任意のファイルを削除します。
- dir
- リモートコンピュータのディレクトリ内のファイルと、サブディレクトリの一覧を表示させます。
- disconnect
- リモートコンピュータとのFTP接続を終了し、「ftp>」プロンプトに戻ります。
- get
- 選択しているファイル転送の種類で、リモートファイルをローカルコンピュータにコピーします。
- glob
- ローカルファイル名のワイルドカードが使用できるかどうかを切り替えます。既定では有効になっています。
- hash
- 転送されるデータのかたまりごとに、ハッシュ記号(#)を出力するかどうかを切り替えます。既定では無効になっています。
- help
- ftpサブコマンドのヘルプを表示させます。
- lcd
- ローカルコンピュータの作業用ディレクトリを変更します。既定では、ftp接続を開始したディレクトリが作業用ディレクトリになります。
- literal
- 引数をその文字通りにリモートFTPサーバに送信します。すると単一のFTP応答コードが返されてきます。
- ls
- リモートコンピュータのディレクトリ内のファイルと、サブディレクトリの、省略した形式の一覧を表示させます。
- mdelete
- リモートコンピュータ上にあるファイルを削除します。
- mdir
- リモートコンピュータのディレクトリにある、ファイルとサブディレクトリの一覧を表示させます。
- mget
- 選択しているファイル転送の選択で、複数のリモートファイルをローカルコンピュータにコピーします。
- mkdir
- リモートコンピュータ内に新しいディレクトリを作成します。
- mls
- リモートコンピュータ内のディレクトリにある、ファイルとサブディレクトリを一覧で表示させます。
- mput
- 現在選択されているファイル転送の種類で、種類のローカルファイルをリモートコンピュータにコピーします。
- open
- 指定したFTPサーバに接続します。
- prompt
- 「ftp>」のような、プロンプト表示モードにするかどうかを切り替えます。既定では有効になっています。
- put
- 選択しているファイル転送の種類で、ローカルファイルをリモートコンピュータにコピーします。sendコマンドと使い方は同じです。
- pwd
- リモートコンピュータ上の現在のディレクトリを表示させます。
- quit
- リモートコンピュータとのFTP接続を終了します。同時にftpコマンドも終了して、通常のコマンドプロンプトに戻ります。
- quote
- 引数を、その文字の通りリモートFTPサーバに送信します。すると単一のFTP応答コマンドが返されてきます。
- recv
- 選択しているファイル転送の種類で、リモートファイルをローカルコンピュータにコピーします。
- remotehelp
- リモートコマンドのヘルプを表示させます。
- rmdir
- 任意のリモートディレクトリを削除します。
- send
- 選択しているファイル手相の種類で、ローカルファイルをリモートコンピュータにコピーします。putコマンドと使い方と同じです。
- status
- 現在のFTP接続状態を表示させます。
- trace
- ftpコマンドを実行するときに、FTP関数の呼び出しなどの表示をするかどうかを切り替えます。
- type
- 設定しているファイル転送の種類を表示させたり、再度設定することができます。ftpでは、ASCIIとバイナリの2種類が使用できます。
- user
- リモートコンピュータに対して、ログインするユーザーを指定します。
- verbose
- ftpのすべての応答を表示させるかどうかを切り替えます。
バッチ型でファイルを送信
ftpコマンドは、ユーザー名やパスワード、ftpサブコマンドを記述したファイルを、オプションの「-s」をつけて指定することにより、バッチ処理的に操作することができます。 用意したコマンドファイルは、次のようなものです。これを「ftp.txt」というファイル名で保存し、ftpコマンドにオプション「-s」をつけて入力します。
※カレントディレクトを「c:¥」にしています。Cドライブの直下にファイル(ftp.txt)を用意してください。
■ftp.txtファイルの内容
*******←ユーザー名を記述します。
*******←パスワードを記述します。
cd public_html←ログイン後、サーバ上のディレクトリに動きます。
put 0707.html 0708.html←ファイル名を変更してデータを転送します。
dir←サーバ内のファイル一覧を表示
quit←ftp接続を切断します。
■実行結果

※1:コマンドファイルを記述したファイルを指定し、サーバに接続してます。
※2:コマンドファイルで記述されている通りに、自動的にパスワードやコマンドが「ftp.txt」から送られて、ファイル転送が行われています。
※3:ftpサーバから、ファイルの転送速度やレスポンスが表示されます。
