UNIX 環境でのFTPの利用

インターネットを通じてファイルの送 受信をする際に使用するプロトコルにFTP(File Transfer Protocol)があります。

FTPプロトコルは、TCP/IP上のプロトコルで、通常21番ポートと20番ポート を使ってアクセスします。 21番ポートは、最初に接続するポートで、 FTPのコマンド転送用に利用します。 これに対して20番ポートは、データ転送用に利用しています。

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



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

リモートホスト「host.example.com」にユーザ 「who」がログインする実行例を示します。

接続に成功するとユーザ名と パスワードを聞かれるので入力すると、ログインできます。

% ftp host.example.com <RET>
Connected to host.example.com
Name (host.example.com:Admin): who
331 Password required for who.
Password :_
ftp> _

ftpコマンドは次のような書式で利用します。

% ftp [オプション] [ホスト名] <RET>

また、次のようにFTPプロンプトを表示して「openコマンド」でもログインできます。

% ftp <RET>
ftp> open host.example.com <RET>

●FTPプロンプトでのディレクトリ操作

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

lsコマンドとcdコマンドを利用することにより、 リモートホストのディレクトリ操作を行えます。

% ls カレントディレクトリに存在するファイルの一覧の表示

% cd リモートホストのディレクトリを移動

ローカルホストでのディレクトリ操作

dirコマンドとlcdコマンドを利用することにより、 ローカルホストのディレクトリ操作を行えます。 コマンドの頭文字の「l」はLocalの略です。

% !ls 作業ディレクトリ内のファイル・ディレクトリ一覧を表示

% lcd ローカルホストの作業ディレクトリを変更

次にlsコマンドとllsコマンドの実行例を示します。

sftp> ls <RET>
drwxr-xr-x    2 who 53       512 Mar  7 19:17 .
drwxr-xr-x   69 who 53      7680 Mar  7 21:18 ..
-rwxr-xr-x    1 who 53       686 Mar  7 19:10 a.out
-rw-r--r--    1 who 53        89 Mar  7 19:09 hello.c
sftp> !ls <RET>
test.log

●FTPプロンプトでのファイル転送

リモートホストからのファイル転送

単独ファイルにはgetコマンド、 複数個のファイルにはmgetコマンドを利用することにより、 リモートホストからのファイル転送が行えます。

% get [ファイル名]

% mget *

ただしこのままだと、データ転送ごとに「yes/no」を聞いてきます。 「yes/no」を出したくなければ、転送前に以下のコマンドを入力してください。

% prompt

ローカルホストからのファイル転送

単独ファイルにはputコマンド、 複数個のファイルにはmputコマンドを利用することにより、 ローカルホストからのファイル転送が行えます。

% put [ファイル名]

% mput *

mputコマンドとmgetコマンドはメタキャラクタを利用できるので、 「*.tex」や「kadai?.tex」などのように ファイル名を指定することで複数のファイルを同時に転送できます。

ただしこのままだと、データ転送ごとに「yes/no」を聞いてきます。 「yes/no」を出したくなければ、転送前に以下のコマンドを入力してください。

% prompt

次にputコマンドの実行例を示します。

sftp> put hello.gif <RET>
200 PORT command successful.
150 Opening BINARY mode data connection for hello.tex.226 Transfer complete.
local: draft.tex remote: hello.tex
6089 bytes sent in 0.055 seconds (1.1e+02 Kbytes/s)
sftp> !ls <RET>
test.log hello.gif

注意:これらのコマンドは、 同じ名前のファイルが存在する場合、警告なしに上書きします。 予め転送するファイルと同じ名前のファイルがないことを確認してください。

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

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

設定されているファイル転送モードを確認するときは、 typeコマンドを実行します。ログインしたときはアスキーモードに設定されています。 次に実行例を示します。

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

asciiコマンドは、ファイル転送モードをアスキーモードに変更します。 アスキーモードはテキストファイルを転送に用います。次に実行例を示します。

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

binaryコマンドは、ファイル転送モードをバイナリモードに変更します。 バイナリモードは画像などのファイル転送に用います。次に実行例を示します。

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

これらのコマンドでファイルの転送モードを変更してから、ファイル転送を行います。

作成・削除・名前変更のコマンド

他に次のコマンドを覚えておけば役立つと思います。

% mkdir [ディレクトリ名] :リモートサーバーにディレクトリを作成する

% rmdir [ディレクトリ名] :リモートサーバーのディレクトリを削除する

% delete [ファイル名] :リモートサーバーのファイルを削除する

% mdelete * :リモートサーバーのファイルを一度に複数削除する

% rename [元ファイル名] [変更名] :リモートサーバーのファイル及びディレクトリの名前を変更

●FTPプロンプトの終了

ファイルの転送を終了する場合は「byeコマンド」もしくは「closeコマンド」 実行してリモートホストとの接続を切断します。 FTPプロンプトを終了する場合は、「quitコマンド」を実行します。

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

戻   る