ftp コマンドは、インターネットのファイルトランスポートプロトコルへのユーザーインタフェースを提供します。このユーザーインタフェースはコマンドインタプリタと呼ばれ、リモートシステムにログインし、そのファイルシステムについて様々な処理を実行できるようにします。基本操作については、表 39–3 を参照してください。
rlogin と rcp とで、ftp が優れている最大のポイントは、ftp はリモートシステムで UNIX を実行する必要がないことです。ただし、リモートシステムを TCP/IP 通信ができるように構成する必要はあります。逆に、rlogin の優れている点は、ftp よりも豊富なファイル操作コマンドを使用できることです。
ftp によるリモートログインの認証は、次のいずれかの方法により確立できます。
コマンド名 |
説明 |
---|---|
ftp |
ftp コマンドインタプリタにアクセスする |
ftp remote-system |
リモートシステムへの ftp 接続を確立する。詳細は、ftp によりリモートシステムへ接続する方法を参照 |
open |
コマンドインタプリタからリモートシステムにログインする |
close |
リモートシステムからログアウトしてコマンドインタプリタに戻る |
bye |
ftp コマンドインタプリタを終了する |
help |
すべての ftp コマンドを表示するか、コマンド名が指定されている場合は、コマンドの機能に関する簡単な説明を表示する |
reset |
リモートの ftp サーバーとコマンド応答シーケンスの同期をとり直す |
ls |
リモートの作業用ディレクトリの内容を表示する |
pwd |
リモートの作業用ディレクトリ名を表示する |
cd |
リモートの作業用ディレクトリを変更する |
lcd |
ローカルの作業用ディレクトリを変更する |
mkdir |
リモートシステム上でディレクトリを作成する |
rmdir |
リモートシステム上でディレクトリを削除する |
get、mget |
リモートの作業用ディレクトリからローカルの作業用ディレクトリに 1 つ以上のファイルをコピーする |
put、mput |
ローカルの作業用ディレクトリからリモートの作業用ディレクトリに 1 つ以上のファイルをコピーする |
delete、mdelete |
リモートの作業用ディレクトリから 1 つ以上のファイルを削除する |
詳細は、ftp(1) のマニュアルページを参照してください。
リモートログインの認証 (ftp)で説明しているように、ftp 認証を持っている必要があります。
ftp コマンドを使用してリモートシステムへ接続します。
$ ftp remote-system |
接続に成功すると、確認メッセージとプロンプトが表示されます。
ユーザー名を入力します。
Name (remote-system:user-name): user-name |
プロンプトが表示されたら、パスワードを入力します。
331 Password required for user-name: Password: password |
アクセス中のシステムで匿名 ftp アカウントが設定されている場合は、パスワードとして電子メールアドレスの入力を求めるプロンプトが表示されます。ftp インタフェースがパスワードを受け付けると、確認メッセージと (ftp>) プロンプトを表示します。
これで、help など、ftp インタフェースから提供されるどのコマンドでも使用できます。主なコマンドについては、表 39–3 を参照してください。
次の ftp セッションは、リモートシステム pluto 上でユーザー smith によって確立されました。
$ ftp pluto Connected to pluto. 220 pluto FTP server ready. Name (pluto:smith): smith 331 Password required for smith: Password: password 230 User smith logged in. ftp> |
bye コマンドを使用して、リモートシステムとの ftp 接続を終了します。
ftp> bye 221-You have transferred 0 bytes in 0 files. 221-Total traffic for this sessions was 172 bytes in 0 transfers. 221-Thanks you for using the FTP service on spdev. 221 Goodbye. |
接続を終了するメッセージに続いて、通常のシェルプロンプトが表示されます。
リモートシステムからファイルをコピーしたい、ローカルシステム上のディレクトリに変更します。
$ cd target-directory |
ftp によりリモートシステムへ接続する方法を参照してください。
コピー元ディレクトリに変更します。
ftp> cd source-directory |
システムがオートマウンタを使用している場合、リモートシステムのユーザーのホームディレクトリは、/home の下にユーザーのホームディレクトリと並行して表示されます。
コピー元ファイルの読み取り権があることを確認します。
ftp> ls -l |
転送タイプを binary に設定します。
ftp> binary |
ファイルを 1 つコピーするには、get コマンドを使用します。
ftp> get filename |
一度に複数のファイルをコピーするには、mget コマンドを使用します。
ftp> mget filename [filename ...] |
個々のファイル名を続けて入力するか、ワイルドカード文字を使用できます。mget コマンドでは、個々のファイルがコピーされ、そのたびに確認を求めるプロンプトが表示されます。
ftp による接続を終了します。
ftp> bye |
次の例では、ユーザー kryten は、システム pluto と ftp 接続し、get コマンドを使用して /tmp ディレクトリから自分のホームディレクトリにファイルを 1 つコピーします。
$ cd $HOME ftp pluto Connected to pluto. 220 pluto FTP server (SunOS 5.8) ready. Name (pluto:kryten): kryten 331 Password required for kryten. Password: xxx 230 User kryten logged in. ftp> cd /tmp 250 CWD command successful. ftp> ls 200 PORT command successful. 150 ASCII data connection for /bin/ls (129.152.221.238,34344) (0 bytes). dtdbcache_:0 filea files ps_data speckeysd.lock 226 ASCII Transfer complete. 53 bytes received in 0.022 seconds (2.39 Kbytes/s) ftp> get filea 200 PORT command successful. 150 ASCII data connection for filea (129.152.221.238,34331) (0 bytes). 221 Goodbye. |
次の例では、同じユーザー kryten が mget コマンドを使用して、/tmp ディレクトリから自分のホームディレクトリに複数のファイルをコピーします。kryten は、個々のファイルについてコピーするか、しないかの選択ができることに注意してください。
$ ftp> cd /tmp 250 CWD command successful. ftp> ls files 200 PORT command successful. 150 ASCII data connection for /bin/ls (129.152.221.238,34345) (0 bytes). fileb filec filed remote: files 21 bytes received in 0.015 seconds (1.36 Kbytes/s) ftp> cd files 250 CWD command successful. ftp> mget file* mget fileb? y 200 PORT command successful. 150 ASCII data connection for fileb (129.152.221.238,34347) (0 bytes). 226 ASCII Transfer complete. mget filec? y 200 PORT command successful. 150 ASCII data connection for filec (129.152.221.238,34348) (0 bytes). 226 ASCII Transfer complete. mget filed? y 200 PORT command successful. 150 ASCII data connection for filed (129.152.221.238,34351) (0 bytes). 226 ASCII Transfer complete.200 PORT command successful. ftp> bye 221 Goodbye. |
ftp コマンドを入力して接続するディレクトリは、ローカルの作業用ディレクトリ、つまりこの操作のコピー元ディレクトリになります。
ftp により接続します。
ftp によりリモートシステムへ接続する方法を参照してください。
コピー先ディレクトリに変更します。
ftp> cd target-directory |
ローカルシステムでオートマウンタを使用中であれば、/home の下に自分のホームディレクトリと並行してリモートシステムのユーザーのホームディレクトリが表示されるので注意してください。
コピー先ディレクトリへの書き込み権があることを確認します。
ftp> ls -l target-directory |
転送タイプを binary に設定します。
ftp> binary |
ファイルを 1 つコピーするには、put コマンドを使用します。
ftp> put filename |
一度に複数のファイルをコピーするには、mput コマンドを使用します。
ftp> mput filename [filename ...] |
個々のファイル名を続けて入力するか、ワイルドカード文字を使用できます。mput コマンドでは、個々のファイルがコピーされ、そのたびに確認を求めるプロンプトが表示されます。
ftp による接続を終了するには、bye と入力します。
ftp> bye |
次の例では、ユーザー kryten はシステム pluto へ ftp により接続し、put コマンドを使用して自分のシステムからシステム pluto の /tmp ディレクトリにファイルをコピーします。
$ cd /tmp ftp pluto Connected to pluto. 220 pluto FTP server (SunOS 5.8) ready. Name (pluto:kryten): kryten 331 Password required for kryten. Password: xxx 230 User kryten logged in. ftp> cd /tmp 250 CWD command successful. ftp> put filef 200 PORT command successful. 150 ASCII data connection for filef (129.152.221.238,34356). 226 Transfer complete. ftp> ls 200 PORT command successful. 150 ASCII data connection for /bin/ls (129.152.221.238,34357) (0 bytes). dtdbcache_:0 filea filef files ps_data speckeysd.lock 226 ASCII Transfer complete. 60 bytes received in 0.058 seconds (1.01 Kbytes/s) ftp> bye 221 Goodbye. |
次の例では、同じユーザー kryten は mput コマンドを使用して自分のホームディレクトリから pluto の /tmp ディレクトリに複数のファイルをコピーします。kryten は、個々のファイルについてコピーするか、しないかを選択できることに注意してください。
$ cd $HOME/testdir $ ls test1 test2 test3 $ ftp pluto Connected to pluto. 220 pluto FTP server (SunOS 5.8) ready. Name (pluto:kryten): kryten 331 Password required for kryten. Password: xxx 230 User kryten logged in. ftp> cd /tmp 250 CWD command successful. ftp> mput test* mput test1? y 200 PORT command successful. 150 ASCII data connection for test1 (129.152.221.238,34365). 226 Transfer complete. mput test2? y 200 PORT command successful. 150 ASCII data connection for test2 (129.152.221.238,34366). 226 Transfer complete. mput test3? y 200 PORT command successful. 150 ASCII data connection for filef (129.152.221.238,34356). 226 Transfer complete. ftp> bye 221 Goodbye. |