next up previous contents
Next: 4.3 Windows環境でのFTPの利用 Up: 4. データ転送 Previous: 4.1 ファイル転送サービスの利用


4.2 UNIX環境でのFTPの利用

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


4.2.1 ftpコマンドの起動とリモートホストへのログイン

ftpコマンドを実行すると,FTPプロンプト(ftp>)が表示される.

% ftp<RET>
ftp>
FTPプロンプトが表示されたら,リモートホストにログインする.次のように openコマンドに続けて,リモートホスト名を入力する.
ftp> open [ホスト名]<RET>
次の例では,picasso.guide.ac.jpにログインしている.

%ftp<RET>
ftp> open picasso.guide.ac.jp<RET>
リモートホスト名を入力し間違えると,次のようなメッセージが表示される.そのときには,正確なホスト名を入力してもう1度実行する.

ftp> open hostname<RET>
hostname: unknown host
ftp> _
もし,正しいホスト名を入力しているのにエラーメッセージが表示されるときは,リモートホストと正常に接続できていない可能性がある.このような場合は,しばらく待つかリモートホストを変えること.

リモートホストに接続されるとメッセージが表示されるので,リモートホストでのログイン名を入力する.ここでは,リモートホストpicasso.guide.ac.jpでのログイン名を入力している.

Connected to picasso.guide.ac.jp.
220 picasso.guide.ac.jp FTP server (UNIX(r) System V Release 4.0) ready.
Name (picasso.guide.ac.jp:t00000tf): _
何も入力しないで<RET>を押すと,カッコの中の`:'の次に示されているローカルホストでのログイン名がそのままリモートホストでのログイン名として使われる.リモートホストでのログイン名がCNSでのログイン名と違う場合は,次の例のようにリモートホストでのログイン名を入力する.

Name (picasso.guide.ac.jp:t00000tf): tarou<RET>

ログイン名を入力したら,次にそのログイン名に対応するパスワードを入力する.次のように`Password: 'の後にパスワードを入力して<RET>を押す.なお,入力中の文字はセキュリティ保持のため画面に表示されない.

入力したログイン名やパスワードが間違っているとログインが拒否される.その場合はuserコマンドを利用して,再びログイン名とパスワードを入力する必要がある.

ftp> user<RET>
(username) tarou<RET>
331 Password required for tarou.
Password: _
ログイン名とパスワードが正しければ,次のようなリモートホストのログインメッセージの後に再びFTPプロンプトが表示される.

230 User tarou logged in.
ftp> _


4.2.2 リモートホストのディレクトリ操作

通常,openコマンドを実行すると,リモートホストのホームディレクトリにログインする.リモートホストのディレクトリの操作を行うには, lsコマンドやcdコマンドを実行する.ローカルホストの作業ディレクトリの操作方法については第1部 4.2.7を参照すること.

FTPで使うコマンドは通常のUNIXコマンドと同じ名前のものが多いが,オプションや機能の違いがあるので注意すること.

lsコマンド

lsコマンドを実行すると,リモートホストのカレントディレクトリに存在するファイルの一覧が表示される.

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

dirコマンド

dirコマンドもlsと同様にファイル一覧を表示するが,ファイルサイズや保護モードなども同時に表示される.次に実行例を示す.なお,ls-lオプションを指定すると,同じ出力結果が得られる.

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

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> _



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

ファイル転送モードの確認,変更を行うには,typeコマンドや binaryコマンド,asciiコマンドを実行する.ログインしたときはアスキーモードに設定されているので,バイナリファイルを転送する場合はバイナリモードに変更する必要がある.

typeコマンド

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


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


binaryコマンド

ファイル転送モードをバイナリモードに変更するには次のように入力する.


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


asciiコマンド

ファイル転送モードをアスキーモードに変更するには次のように入力する.


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



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

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


getコマンド

getコマンドを利用すると,リモートホストのカレントディレクトリに置いてあるファイルをローカルホストの作業ディレクトリに転送できる.この例では,kadai.texというファイルを転送している.転送が終了するとメッセージが表示され,FTPプロンプトが表示される.


ftp> get kadai.tex<RET>
200 PORT command successful.
150 Binary data connection for work.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> get kadai.html<RET>
200 PORT command successful.
550 kadai.html: No such file or directory.
ftp> _

mgetコマンド

getコマンドではファイルを1個ずつしか転送できないが, mgetコマンドを利用すると,*.texkadai?.texなどのようにメタキャラクタを利用して,複数個のファイルを同時に転送できる.

次に,リモートホストのカレントディレクトリのファイルをすべてローカルホストに転送する例を示す.なお,転送ファイル内にバイナリファイルが含まれる場合はbinaryコマンドを実行して,転送モードをバイナリに設定しておくこと.

ftp> mget*<RET>
mgetコマンドを実行すると,次のように指定された条件に合致するファイルが1つ見つかる度にそのファイルを転送してよいか尋られるので, 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) (0 bytes).
226 Binary Transfer complete.
ftp> _
getコマンドやmgetコマンドは,ローカルホストの作業ディレクトリに転送しようとしているファイルと同じ名前のファイルがある場合,それを警告なしに上書きしてしまう.あらかじめ,ローカルホストの作業ディレクトリには転送するファイルと同名のファイルがないことを確認しておくこと.


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

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

putコマンド

putコマンドを利用するとローカルホストの作業ディレクトリにあるファイルをリモートホストのカレントディレクトリに転送できる.次に実行例を示す.

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> put drink.tex<RET>
drink.tex: No such file or directory
ftp> _

mputコマンド

複数個のファイルをリモートホストに転送するには,mputコマンドを利用する.次の例では,ローカルホストの作業ディレクトリにあるファイル名が example.ではじまるファイルをすべてリモートホストのカレントディレクトリに転送している.

% mput example.*<RET>

mputコマンドを実行すると,指定された条件に合致するファイルが1つ見つかる度にそのファイルを転送するか確認を求められるので, yあるいはnを入力する.yを入力するとファイルは転送され,nと入力すると転送されない.

ftp> mput exmple.}{<RET>
mput exmple.aux? n<RET>
mput exmple.dvi? y<RET>
200 PORT command successful.
150 Opening BINARY mode data connection for exmple.dvi.
226 Transfer complete.
local: exmple.dvi remote: exmple.dvi
348 bytes sent in 0.0051 seconds (67 Kbytes/s)
ftp> _
なお,promptコマンドを利用することによって,ファイルごとの転送確認の有無を切り替えられる.
putコマンドやmputコマンドは,リモートホストのカレントディレクトリに転送しようとしているファイルと同じ名前のファイルがある場合,それを警告なしに上書きしてしまう.あらかじめリモートホストのカレントディレクトリに同名のファイルがないことを確認しておくこと.


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

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

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


4.2.7 その他のコマンド


lcdコマンド

ローカルホストの作業ディレクトリは,ftpコマンドを実行したときのカレントディレクトリになるが,lcdコマンドを利用するとリモートホストの接続中にローカルホストの作業ディレクトリを変更できる.例えば次のコマンドを実行すると,ローカルホストの作業ディレクトリは englishというディレクトリに変更される.

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


next up previous contents
Next: 4.3 Windows環境でのFTPの利用 Up: 4. データ転送 Previous: 4.1 ファイル転送サービスの利用