ネットワークの利用/データ転送/UNIX環境でのFTPの利用

UNIX環境でFTPを利用するには,ftpコマンドを実行します.ここではftpコマンドの利用方法について説明します.

3.2.1 リモートホストへのログイン

次にリモートホストへのログインの方法について説明します.

1.
シェルでftpコマンドを実行する.実行するとFTPプロンプト(ftp>)が表示される.
2.
FTPプロンプトが表示されたらopenコマンドを実行してリモー トホストにログインする.
3.
リモートホストでのログイン名を聞かれるので入力する.ローカルホス トでのログイン名と同じ場合はそのまま<RET>を押す.
4.
ログイン名を入力するとパスワードを聞かれるので入力し<RET>を押す.

次の実行例ではリモートホストccz03.sfc.keio.ac.jpにログインしています.ログインに成功すると`230 User t01000tf logged in.'というメッセージが画面に表示され,ログインが成功していることが確認できます.

ftp> open ccz03.sfc.keio.ac.jp<RET>
Connected to ccz03.
220 ccz03 FTP server (SunOS 5.6) ready.
Name (ccz03.sfc.keio.ac.jp:t01000tf): _
331 Password required for t01000tf.
Password:
230 User t01000tflogged in.
ftp> _

ログイン名やパスワードが間違っているとログインできません.その場合はuserコマンドを利用して,もう一度ログイン名とパスワードを入力します.次の実行例ではパスワードを間違ったときのuserコマンドの 使い方を示しています.

331 Password required for t01000tf.
Password:
530 Login incorrect.
Login failed.
ftp> user
(username) t01000tf
331 Password required for t01000tf.
Password: 
230 User t01000tflogged in.
ftp> _

3.2.2 FTPでのディレクトリ操作

FTPで転送したいファイルがあるディレクトリへ移動したり,ディレクトリ内のファイルを表示させたりするにはlsコマンドやcdコマンドを使用します.次にFTPで利用できるファイルとディレクトリ操作のコマンドについて説明します.

lsコマンド

lsコマンドは,リモートホストのカレントディレクトリに存在するファイルの一覧を表示します.

ftp> ls<RET>
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
bin
Mail
report.tex
226 Transfer complete.
99 bytes received in 0.0011 seconds (8.78 Kbytes/s)
ftp> _

dirコマンド

dirコマンドはlsと同じようにリモートホストのカレントディレクトリに存在するファイルの一覧を表示します. lsコマンドと異なり,dirコマンドはファイルサイズや保護モードの情報も同時に表示します. lsコマンドに-lオプションを利用しても同じ情報が表示されます.

ftp> dir<RET>
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 44
-rw-rw-rw-  1 t01000tfstudent            254 Oct 20 01:55 .cshrc
drwxr-xr-x  2 t01000tfstudent           4096 Feb 12 12:25 bin
drwxr-----  2 t01000tfstudent           4096 Nov 14 04:12 Mail
-rwxr-xr-x  2 t01000tfstudent           4096 Feb 12 12:25 report.tex
226 Transfer complete.
705 bytes received in 0.047 seconds (15 Kbytes/s)
ftp> _

cdコマンド


cdコマンドはリモートホストのディレクトリの移動に利用します.次にcdコマンドの実行例を示します.

ftp> cd report<RET>
250 CWD command successful.
ftp> ls<RET>
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
kadai.tex
kadai.dvi
226 Transfer complete.
44 bytes received in 0.00073 seconds (59 Kbytes/s)
ftp> _


lcdコマンド

lcdコマンドはLocal Change Directoryの略です.FTPを実行中にローカルホストの作業ディレクトリを変更したい場合は,lcdコマンドを使用します.次の実行例ではローカルホストの作業ディレクトリをenglishに変更しています.

ftp> lcd english<RET>
Local directory now /a/fs0001a/t01000tf/english
ftp> _


3.2.3 ファイル転送モードの変更

ファイル転送を行うときには,転送したいファイルの種類に合わせて転送モードを選ぶ必要があります.転送モードはバイナリモードとアスキーモードの2種類あります.次に転送モードの確認,変更を行うコマンドについて説明します.


typeコマンド

設定されているファイル転送モードを確認するときは,typeコマンドを実行します.次に実行例を示します.

ftp> type<RET>
Using ascii mode to transfer files.
ftp> _


binaryコマンド

binaryコマンドは,ファイル転送モードをバイナリモードに変更します.次に実行例を示します.

ftp> binary<RET>
200 Type set to I.
ftp> _

asciiコマンド


asciiコマンドは,ファイル転送モードをアスキーモードに変更します.次に実行例を示します.

ftp> ascii<RET>
200 Type set to A.
ftp> _


3.2.4 リモートホストからローカルホストへのファイルの転送

リモートホストに置いてあるファイルをローカルホストに転送するには, getコマンドやmgetコマンドを利用します.


getコマンド


getコマンドはリモートホストのファイルをローカルホストに転送するときに利用します.次に,kadai.texというファイルを転送する実行例を示します.

ftp> get kadai.tex<RET>
200 PORT command successful.
150 Binary data connection for kadai.tex (xxx.xxx.xxx.xxx,1496) (973 bytes).
226 Binary Transfer complete.
3973 bytes received in 0.011 seconds (3.7e+02 Kbytes/s)
ftp> _

転送が終了するとFTPプロンプトが表示されます.リモートホストにファイルが存在しない場合,エラーメッセージが表示されるのでファイル名を確認してください.次はエラーメッセージが表示されている実行例です.

ftp> get kadai.html<RET>
200 PORT command successful.
550 kadai.html: No such file or directory.
ftp> _


mgetコマンド


getコマンドはファイルを1個ずつしか転送できません. mgetコマンドはメタキャラクタやワイルドカードを利用できるので,`*.tex'や`kadai?.tex'などのようにファイル名を指定することで複数のファイルを同時に転送できます.

次に,リモートホストのカレントディレクトリのファイルをすべてローカルホストに転送する実行例を示します. mgetコマンドを実行すると,指定された条件に合致するファイルがみつかるたびに,そのファイルを転送してよいかどうか尋ねられます. yもしくはnを入力して転送してよいかどうか答える必要があります.yを入力すると転送され,nを入力すると転送されません.

ftp> mget *<RET>
mget kadai.tex? n<RET>
mget kadai.dvi? y<RET>
200 PORT command successful.
150 Binary data connection for kadai.dvi (xxx.xxx.xxx.xxx,41525) (973 bytes).
226 Binary Transfer complete.
ftp> _

getコマンドやmgetコマンドは,ローカルホストの作業ディレクトリに転送しようとしているファイルと同じ名前のファイルがある場合,それを警告なしに上書きします.あらかじめ,ローカルホストの作業ディレクトリには転送するファイルと同名のファイルがないことを確認してください.

3.2.5 ローカルホストからリモートホストへのファイル転送

ローカルホストにあるファイルをリモートホストに転送するには,putコマンドやmputコマンドを利用します.

putコマンド

putコマンドはローカルホストのファイルをリモートホストに転送するときに利用します.次に,draft.texというファイルをリモートホストに転送する実行例を示します.

ftp> put draft.tex<RET>
200 PORT command successful.
150 Opening BINARY mode data connection for draft.tex.
226 Transfer complete.
local: draft.tex remote: draft.tex
6089 bytes sent in 0.055 seconds (1.1e+02 Kbytes/s)
ftp> _
転送が終了するとFTPプロンプトが表示されます.ローカルホストにファイルが存在しない場合,エラーメッセージが表示されるのでファイル名を確認してください.次はエラーメッセージが表示されている実行例です.
ftp> put drink.tex<RET>
drink.tex: No such file or directory
ftp> _

mputコマンド

mputコマンドはファイルを1個ずつしか転送できません. mputコマンドはmgetコマンドと同様にメタキャラクタを利用できるので,`*.tex'や`kadai?.tex'などのようにファイル名を指定することで複数のファイルを同時に転送できます.

次に,ローカルホストの作業ディレクトリにある`example.'ではじまるファイルをすべてリモートホストに転送する実行例を示します. mputコマンドを実行すると,指定された条件に合致するファイルがみつかるたびに,そのファイルを転送してよいかどうか尋ねられます. yもしくはnを入力して転送してよいかどうか答える必要があります.yを入力すると転送され,nを入力すると転送されません.

ftp> mput example.}{<RET>
mput example.aux? n<RET>
mput example.dvi? y<RET>
200 PORT command successful.
150 Opening BINARY mode data connection for example.dvi.
226 Transfer complete.
local: example.dvi remote: example.dvi
348 bytes sent in 0.0051 seconds (67 Kbytes/s)
ftp> _

putコマンドやmputコマンドは,リモートホストのカレントディレクトリに転送しようとしているファイルと同じ名前のファイルがある場合,警告なしに上書きします.あらかじめリモートホストのカレントディレクトリに同名のファイルがないことを確認してください.

3.2.6 接続の切断とftpコマンドの終了

ファイルの転送を終了するにはcloseコマンドを実行してリモートホストとの接続を切断します.closeコマンドを実行するとFTPプロンプトが表示されます.再び別のホストに接続する場合は openコマンドを利用します. FTPを終了する場合はquitコマンドを実行してください.

ftp> close<RET>
221 Goodbye.
ftp> quit<RET>
% _