ftp コマンド

目的

ローカル・ホストとリモート・ホスト間でファイルを転送します。

構文

ftp [ -d ] [ -D DataConnTimeOut ] [ -g ] [ -i ] [ -n ] [ -v ] [ -f ] [ -K ] [ -k realm ] [ -q ] [ -C ] [-s ] [ -M ] [ HostName [ Port ] ] [ -H ]

説明

ftp コマンドは、ファイル転送プロトコル (FTP) を使って、ローカル・ホストとリモート・ホストの間で、または 2 つのリモート・ホストの間でファイルを転送します。 ftp コマンドのリモート実行はお勧めしません。

FTP プロトコルを使うと、異なるファイルシステムを使っているホスト間でデータ転送が可能になります。 このプロトコルはデータ転送には高い柔軟性を持っていますが、それぞれのファイルシステムに固有のファイル属性 (ファイルの保護モードまたは変更時間など) を保存するようには設計されていません。 さらに、このプロトコルはファイルシステムの構造全般についてほとんど仮定を行わず、また、サブディレクトリーを再帰的にコピーするような機能を提供することもありません。

注: システム間でファイルを転送する場合にファイル属性を保持したり、サブディレクトリーを再帰的にコピーする必要がある場合は、rcp コマンドを使用してください。

サブコマンドの発行

ftp> プロンプトで、サブコマンドを入力して、リモート・ディレクトリーのリスト表示、ローカルおよびリモートの現行ディレクトリーの変更、単一要求での複数ファイルの転送、 ディレクトリーの作成と除去、シェル・コマンドの実行のためのローカル・シェルへのエスケープなどのタスクを実行することができます。 各サブコマンドの説明については、 サブコマンドのセクションを参照してください。

ftp コマンドを実行して、リモート・ホストの HostName パラメーターを指定しないと、ftp コマンドは即時に ftp> プロンプトを表示し、ftp サブコマンドを待ちます。リモート・ホストに接続するには、open サブコマンドを実行します。 ftp コマンドは、リモート・ホストに接続すると、ログイン名とパスワードを入力するためのプロンプトを出し、その後 ftp> プロンプトを再度表示します。 リモート・ホスト側でログイン名のパスワードが定義されていないと、ftp コマンドは失敗に終わります。

ftp コマンド・インタープリターは、ftp> プロンプトで入力されたすべてのサブコマンドを処理しますが、次のような、ほとんどのファイル転送プログラムでは使用できない機能を備えています。

  • ftp サブコマンドのファイル名パラメーターを処理する。
  • サブコマンドのグループを収集して単一のサブコマンド・マクロを作成する。
  • $HOME/.netrc ファイルからマクロをロードする。

これらの機能を使用すると、反復タスクを単純化して、ftp コマンドを不在モードで使用することができます。

このコマンド・インタープリターは、ファイル名パラメーターを次の規則に従って処理します。

  • パラメーターとして - (ハイフン) を指定すると、 読み取り操作には標準入力 (stdin)、書き込み操作には標準出力 (stdout) が使用されます。
  • 上記の検査が適用されず、 ファイル名拡張機能が使用可能であれば (-g フラグ、 または glob サブコマンドのセクションを参照)、 インタープリターは C シェルの規則に従ってファイル名を拡張します。グロビング機能が使用可能であり、 単一のファイル名を期待するサブコマンドにパターン・マッチング文字が使用されていると、 予期しない結果が起こることがあります。

    例えば、append サブコマンドと、 put サブコマンドは、 ファイル名の拡張を行った後、最初に生成されたファイル名だけを使用します。 cddeletegetmkdirrenamermdir など、 その他の ftp サブコマンドは、ファイル名の拡張を行わず、 パターン・マッチング文字をそのまま採用します。

  • getputmget、および mput サブコマンドでは、インタープリターがローカルとリモートの異なるファイル名構文のスタイルを変換し、マップする機能を提供します (casentrans、および nmap サブコマンドを参照)、また、ローカル・ファイル名が固有でない場合、これを変更する機能も提供します (runique サブコマンドを参照)。 さらに、ftp コマンドは、リモート・ファイル名が固有のファイル名でない場合、 リモート ftpd サーバーに指示を送って、 この名前を変更することができます (sunique サブコマンドを参照)。
  • ブランク文字を含むパラメーターを指定するには、 二重引用符 (" ") を使用します。
    注: ftp コマンド・インタープリターはパイプをサポートしません。 また、すべてのマルチバイト文字ファイル名がサポートされるとは限りません。

ftp セッションを対話式に実行しているときに終了させるには、ftp> プロンプトで、 quit サブコマンドまたは bye サブコマンドを使用するか、ファイルの終わり (Ctrl-D) キー・シーケンスを入力します。ファイル転送を完了前に終了するには、割り込みキー・シーケンスを押します。デフォルトの割り込みキー・シーケンスは Ctrl-C です。 このキー・シーケンスを再定義するには、stty コマンドを使用します。

通常、ftp コマンドは (ローカル・ホストからリモート・ホストへ) 送られる転送を即座に停止します。 ftp コマンドは、リモート・ホストから送信され、 ローカル・ホストで受信されるデータ転送を停止するのに、 リモート FTP サーバーに FTP ABOR 命令を送信し着信するファイル転送パケットをすべて廃棄して、 リモート・サーバーが送信を停止するといった方法をとります。 リモート・サーバーが ABOR 命令をサポートしていなければ、 リモート・サーバーが要求されたファイルをすべて送信し終わるまで、ftp コマンドは ftp> プロンプトを表示しません。また、リモート・サーバーが予期しない動作を行う場合は、ローカル ftp プロセスを終了しなければならないことがあります。

セキュリティーと自動ログイン

標準が現行認証メソッドである場合

ftp コマンドはさらに、リモート・ホストにパスワードを送ってセキュリティーを提供し、自動ログイン、ファイル転送、ログアウトを許可します。

ftp コマンドを実行してリモート・ホストのホスト名 (HostName) を指定すると、ftp コマンドは直ちに指定されたホストへの接続を設定しようとします。 ftp コマンドは、正常に接続すると、現行ディレクトリーまたはホーム・ディレクトリー内でローカル $HOME/.netrc ファイルを検索します。 ファイルがあれば、ftp コマンドはそのファイル内で、ログイン処理を開始するエントリーと、リモート・ホストのコマンド・マクロ定義を検索します。 $HOME/.netrc ファイルまたは自動ログイン・エントリーが存在しない場合、 またはユーザーのシステムが securetcpip コマンドによって 保護されている場合は、ftp コマンドはユーザーに対して ユーザー名とパスワードの入力を指示します。 これは HostName パラメーターがコマンド・ラインで指定されているかどうかにかかわらず行われます。

注: キューイング・システムでは、マルチバイトのホスト名はサポートされません。

ftp コマンドは、指定されたホスト用の $HOME/.netrc 自動ログイン・エントリーを見つけると、そのエントリー内の情報を使用してリモート・ホストにログインしようとします。 さらに、ftp コマンドはその自動ログイン・エントリー内で定義されたコマンド・マクロをすべてロードします。 場合によっては (例えば、必要なパスワードが自動ログイン・エントリーにリスト表示されていない場合)、 ftp コマンドは、ftp> プロンプトを表示する前に、 パスワードを求めるプロンプトを出します。

ftp コマンドは自動ログインを完了すると、init マクロが自動ログイン・エントリー内で定義されていれば、それを実行します。 init マクロが存在しないか、その中に quit または bye サブコマンドが入っていない場合、 ftp コマンドは、ftp> プロンプトを表示して、サブコマンドを待ちます。

注: プロンプトまたは $HOME/.netrc ファイル内で指定するリモート・ユーザー名は、必ず存在し、かつリモート・ホストで定義されたパスワードを持っていなければなりません。そうでない場合、ftp コマンドは失敗に終わります。

Kerberos 5 が現行認証メソッドである場合

ftp コマンドは、ftp 仕様への拡張機能を、IETF ドラフト文書「draft-ietf-cat-ftpsec-09.txt」で定義された通りに使用します。 FTP セキュリティー拡張機能は、Generic Security Service API (GSSAPI) のセキュリティー・メカニズムを用いて インプリメントされます。GSSAPI は、基礎となるセキュリティーおよび通信メカニズムとは別のサービスを 提供します。GSSAPI は rfc 1508 および 1509 で定義されます。

ftp コマンドは、ftpd デーモンを用いて認証する AUTH と ADAT コマンドを使用します。 AUTH と ADAT の両方のコマンドが Kerberos 認証をサポートしている場合、それらはローカル・ユーザー DCE 認証を用いて、リモート・システム上のユーザーの認証を行います。 これが失敗し、両システムで標準の認証が構成される場合は、上記のプロセスが使用されます。

HostName パラメーターはファイルの転送先となるホスト・コンピューターの名前です。 オプションの Port パラメーターにより、転送時に使われるポートの ID を指定します。(デフォルトのポートは /etc/services ファイルで指定されます。)

注: レジストリーの値が現行の認証方式に正しく設定されている場合、FTP 認証はアクティブなディレクトリー・パスワードを使用して機能します。レジストリーの値がヌルに設定されている場合は、ファイルのデフォルト値 (ローカル・ユーザー認証) が使用されます。

トランスポート層セキュリティーのサポート

ftp コマンドは、RFC 4217 で定義されているトランスポート層セキュリティー (TLS) をサポートします。TLS は、クライアントとサーバー間で安全な通信を行うための暗号プロトコルです。

ftp コマンドは、AUTH TLSPROT P コマンドを 使用して、ftpd デーモンとの通信を保護します。 AUTH TLSPROT P コマンドの両方が TLS プロトコルをサポートしていると、保護されたチャネルが確立されます。標準認証方式のみがサポートされています。

ftp コマンドの実行時に -s フラグが指定されていると、ftp コマンドはユーザーのホーム・ディレクトリー内でローカル $HOME/.ftpcnf ファイルを検索します。 このファイルが見つかると、ftp コマンドは以下の構成パラメーターを使用して、サーバーとの TLS セッションを セットアップします。このファイルが見つからないか、構成パラメーターが欠落している場合、ftp コマンドは 構成パラメーターを使用しないでサーバーへの接続を試行します。

CRL_PATH
CRL_PATH パラメーターは、証明書取り消しリスト・ファイルのパスを提供します。このファイルは Privacy Enhanced Mail (PEM) フォーマットでなければなりません。これを指定すると、サーバーが提供するデジタル証明書が証明書取り消しリストと照合されます。証明書が取り消されていた場合、TLS セッションは失敗します。このパラメーターが無指定の場合、 デジタル証明書は証明書取り消しリストと照合されません。
CA_PATH
CA_PATH パラメーターは、認証局ファイルへのパスを提供します。このファイルは PEM フォーマットでなければなりません。これを指定すると、サーバー証明書が認証局と照合されます。サーバーが提供するデジタル証明書がセキュリティー機関によって署名されていなかった場合は、TLS セッションが失敗します。このパラメーターが無指定の場合、サーバーが提供するデジタル証明書は証明書取り消しリストと照合されません。
CIPHER_LIST
CIPHER_LIST パラメーターを指定すると、このリストが TLS セッション中に使用されます。これを指定しないと、デフォルトの暗号リストが使用されます。
DEPTH
CA_PATH 構成パラメーターを指定すると、デジタル証明書階層内の ftpd サーバーが提供する証明書を検証するために DEPTH 値が使用されます。これを指定しないと、デフォルト値の 9 が使用されます。
CERTIFICATE
CERTIFICATE パラメーターは、PEM フォーマットの有効なデジタル証明書チェーン・ファイルへのパスを提供します。このファイルは TLS セッションで使用されます。
CERTIFICATE_PRIVATE_KEY
CERTIFICATE_PRIVATE_KEY パラメーターには、証明書秘密鍵 (PEM 形式) へのパスが含まれます。 これは TLS セッション中に使用されます。 TLS をサポートするには、AIX® Web Download Pack Programs Web サイトから最新バージョンの OpenSSL ツールをインストールする必要があります。

Trusted AIX システムの場合

ユーザーにはデフォルト・ログイン機密ラベル (SL) と保全性ラベル (TL) が割り当てられ、これが正常なログイン後にユーザーのプロセスの有効な SL と TL になります。ユーザーが デフォルト・ログイン SL でログインしたくない場合は、ログイン時に -e オプションを 使用して、別の SL を提供することを選択できます。 ユーザーが提供する SL は、ユーザーの認可に従い、システム認定の範囲に含まれる必要があります。TL は、ユーザーがログイン時に指定できません。 デフォルト・ログイン SL と TL は、 各ユーザーごとのユーザー名および認可とともに、/etc/security/user ファイル内に 定義されています。-e オプションを使用する場合は、サーバー側のカーネル・トラステッド・ネットワーク・ビットをオフにする必要があります。

注: ユーザー ID が 128 以下のユーザーは、リモートの Trusted AIX システムにログインできません。

フラグ

項目 説明
-C send_file コマンドを使用して送信される 発信ファイルをネットワーク・バッファー・キャッシュ (NBC) に入れなければならないことを 指定します。このフラグは、-q フラグが指定されていなければ指定できません。このフラグは、ファイルがバイナリー・モードで保護されずに送信される場合にのみ適用されます。
-d ftp コマンドの動作についてのデバッグ情報を syslogd デーモンに送ります。 -d フラグを指定した場合、/etc/syslog.conf ファイル を編集して、次のいずれか 1 つのエントリーを追加しなければなりません。
user.info FileName

または


user.debug FileName
注: syslogd デーモンの debug レベルには、info レベルのメッセージが含まれます。

/etc/syslog.conf ファイルを編集しないと、メッセージはなにも生成されません。/etc/syslog.conf ファイルを変更した後、 refresh -s syslogd または、 kill-1SyslogdPID コマンドを実行して、 syslogd デーモンに、構成ファイルに加えた変更内容を通知してください。 デバッグ・レベルの詳細については、/etc/syslog.conf ファイルを参照してください。また、debug サブコマンドも参照してください。

-D DataConnTimeOut

ftp コマンドがデータ接続を保持する最大秒数を指定します。デフォルト値は 300 秒です。値は 300 秒から 3600 秒の範囲で指定することができます。

-f 認証の転送を行います。このフラグは、Kerberos 5 が現行の認証メソッドでない場合は無視されます。
-g ファイル名のメタキャラクターの拡張を使用不可にします。メタキャラクターの解釈は、ファイル名の拡張 (グロビングともいう) として参照されます。glob サブコマンドを参照してください。
-H FILE_Unlink イベントの監査ロギングをオンにします (このイベントがユーザーに対して有効になっている場合)。
-i 複数のファイルを転送する間、対話式のプロンプト表示をオフにします。 複数のファイル転送時のプロンプトの説明については、 promptmgetmputmdelete サブコマンドを参照してください。
-K 制御とデータ接続の両方に関する sys/socket.h ファイルに定義された SO_KEEPALIVE オプションを使用不可にします。
-k realm リモート端末のレルムがローカル・システムのレルムと異なる場合は、ユーザーがそれを指定できるようにします。このような目的では、レルムは DCE セルと同義です。このフラグは、 Kerberos 5 が現在の認証メソッドでない場合は無視されます。
-M ローカル・ホストとリモート・ホスト間でファイルが転送された後に ftp コマンドがブロックされないようにします。
-n 最初の接続時の自動ログインを防止します。このフラグを指定しないと、ftp コマンドは、ログインおよびリモート・ホスト用の初期化処理を記述した $HOME/.netrc エントリーを探します。user サブコマンドを参照してください。
-q ネットワーク上のファイルの送信に send_file サブルーチンを使用しなければならないことを指定します。このフラグは、ファイルがバイナリー・モードで保護されずに送信される場合にのみ適用されます。
-v リモート・サーバーからの応答をすべて表示し、データ転送の統計を提供します。ftp コマンドの出力がコンソールやディスプレイなどの端末に対して行われる場合、これがデフォルトの表示モードになります。

stdin が端末でない場合、-v フラグを指定して ftp コマンドを起動するか、または verbose サブコマンドを実行しない限り、ftp コマンドは詳細モードを使用不可にします。

-s AUTH TLS コマンドと PROT P コマンドを ftpd デーモンに送信することで、サーバーとの TLS セッションを開始します。TLS セッションが確立され、ユーザーが標準認証方式を使用して認証されると、データとコマンドの転送は暗号化されます。

サブコマンド

以下の ftp サブコマンドは、ftp> プロンプトで入力することができます。ブランク文字を含むパラメーターを指定するには、二重引用符 (" ") を使用します。

項目 説明
![Command [Parameters]] ローカル・ホスト上の対話型シェルを起動します。1 つ以上のオプション・パラメーターとオプション・コマンドをシェル・コマンドと一緒に指定することができます。
$Macro [Parameters] macdef サブコマンドで定義済みの、 指定されたマクロを実行します。パラメーターは拡張されません。
?[Subcommand] サブコマンドの説明をするヘルプ・メッセージを表示します。Subcommand パラメーターを指定しない場合は、ftp コマンドは既知のサブコマンドのリストを表示します。
account [Password] リモート・ホストのリソースへのアクセスを認める前に、必要となる補足パスワードをリモート・ホストに送信します。コマンドと一緒にパスワードを指定しないと、パスワードを求めるプロンプトが表示されます。パスワードは画面には表示されません。
append LocalFile [RemoteFile] リモート・ホスト上のファイルにローカル・ファイルを追加します。リモート・ファイル名を指定しないと、ローカル・ファイル名が使用され、 ntrans サブコマンド、 または nmap サブコマンドで行われた設定で、 変更されます。append サブコマンドは、ファイルの追加時に、 formmodestructtype サブコマンドの現在の値を使用します。
ascii type ascii サブコマンドと同義。
bell 各ファイルの転送が終わるたびにベルを鳴らします。
binary type binary サブコマンドと同義。
block mode block サブコマンドと同義。
bye ファイル転送セッションを終了し、ftp コマンドを終了します。 quit サブコマンドと同じように機能します。
carriage-control form carriage-control サブコマンドと同義。
case ファイル名の大文字と小文字の切り替えを設定します。case サブコマンドがオンになっていると、ftp コマンドは、すべて大文字で表示されているリモート・ファイル名を、ローカル・ディレクトリーに書き込むときに大文字から小文字に変更します。デフォルトはオフです (ftp コマンドにより大文字のリモート・ファイル名はローカル・ディレクトリーに大文字で書き込まれます)。
cd RemoteDirectory リモート・ホスト上の作業ディレクトリーを、指定されたディレクトリーに変更します。
cdup リモート・ホスト上の作業ディレクトリーを、現行ディレクトリーの親に変更します。
close ファイル転送セッションを終了しますが、ftp コマンドは終了しません。定義済みのマクロは消去されます。disconnect サブコマンドと同じように機能します。
copylocal ローカル・コピーを切り替えます。copylocal のデフォルトはオフです。ftp はファイルをそのファイル自体に (同じホスト名、同じパス名などを) 転送してゼロ設定しなくてもよいようにします。copylocal をオンにすると、この検査が省略されます。
cr ASCII タイプのファイルの転送中、レコードの受信時に復帰/行送りシーケンスから復帰文字をストリップします。(ftp コマンドは、ファイル転送時に、復帰と行送りを使って ASCII タイプの各レコードを終了させます。)

実行中のオペレーティング・システムとは別のオペレーティング・システムによる、 リモート・ホスト上のレコードには、単一の行送りが組み込まれている場合があります。組み込まれた行送りをレコード区切り文字と区別するには、cr サブコマンドをオフに設定します。cr サブコマンドはオンとオフの間で切り替わります。

debug [0 | 1] デバッグ・レコードの保存のオン/オフを切り替えます。debug または debug 1 を指定して、リモート・ホストに送られた各コマンドを出力し、再始動制御ファイルを保管します。デバッグ・レコードの保存を中止するには、debug を再度指定するか debug 0 を指定します。また、Ctrl-C キー・シーケンスも再始動制御ファイルを保管します。

debug サブコマンドを指定すると、ftp コマンドの操作についてのデバッグ情報が syslogd デーモンに送られます。debug サブコマンドを指定した場合には、 /etc/syslog.conf ファイルを編集して次のいずれか 1 つのエントリーを追加しなければなりません。

user.info FileName

または


user.debug FileName
注: syslogd デーモンの debug レベルには、info レベルのメッセージが含まれます。

/etc/syslog.conf ファイルを編集しないと、メッセージはなにも生成されません。/etc/syslog.conf ファイルを変更した後、 refresh -s syslogd または、 kill-1SyslogdPID コマンドを実行して、 syslogd デーモンに、構成ファイルに加えた変更内容を通知してください。 デバッグ・レベルの詳細については、/etc/syslog.conf ファイルを参照してください。ftp -d フラグも参照してください。

delete RemoteFile 指定されたリモート・ファイルを削除します。
dir [RemoteDirectory][LocalFile] 指定されたリモート・ディレクトリー (RemoteDirectory) の内容 のリストを指定されたローカル・ファイル (LocalFile) に書き込みます。RemoteDirectory パラメーターの指定がない場合、dir サブコマンドは現行リモート・ディレクトリーの内容を出力します。 LocalFile パラメーターが指定されない場合または - (ハイフン) の場合には、dir サブコマンドはローカル端末装置上にリストを表示します。
disconnect ファイル転送セッションを終了しますが、ftp コマンドは終了しません。定義済みのマクロは消去されます。close サブコマンドと同じように機能します。
ebcdic type ebcdic サブコマンドと同義。
exp_cmd 標準的プロトコル・コマンドと実験的プロトコル・コマンドを切り替えます。 デフォルトはオフです。
file struct file サブコマンドと同義。
form [ carriage-control | non-print | telnet ] ファイル転送のフォーマットを指定します。form サブコマンドは、指定したフォーマットでファイル転送を行うように type サブコマンドを変更します。有効な引数は、carriage-controlnon-print、および telnet です。
carriage-control
ファイル転送のフォーマットを紙送り制御に設定します。
non-print
ファイル転送のフォーマットを非印刷に設定します。
telnet
ファイル転送のフォーマットを Telnet に設定します。Telnet は、システムへの接続をオープンする伝送制御プロトコル/インターネット・プロトコル (TCP/IP) です。
get RemoteFile [LocalFile] リモート・ファイルをローカル・ホストにコピーします。LocalFile パラメーターの指定がない場合は、リモート・ファイル名をローカルに使用し、casentransnmap サブコマンドによる設定によって、変更します。 ftp コマンドは、ファイル転送時には、 typeformmodestruct サブコマンドの、 現在の設定を使用します。
glob mdeletemgetmput サブコマンドの、 ファイル名拡張 (グロビング) を切り替えます。グロビングが使用不可の場合は、上記のサブコマンドのファイル名パラメーターは拡張されません。 グロビング機能が使用可能であり、 単一のファイル名を期待するサブコマンドにパターン・マッチング文字が使用されていると、 予期しない結果が起こることがあります。

例えば、append サブコマンドと、 put サブコマンドは、 ファイル名の拡張を行った後、最初に生成されたファイル名だけを使用します。cddeletegetmkdirrenamermdir など、 その他の ftp サブコマンドは、ファイル名の拡張を行わず、 パターン・マッチング文字をそのまま採用します。

mput サブコマンドのグロビングは、 csh コマンドの場合と同じ方法で、 ローカルに行われます。mdelete サブコマンドと、 mget サブコマンドの場合には、 各ファイル名はリモート・コンピューターで別々に拡張され、リストはマージされません。ディレクトリー名の拡張はリモート・ホストと ftp サーバーに依存しており、ファイル名の拡張とは異なる場合があります。

ディレクトリー名の拡張をプレビューするには、 mls サブコマンドを使用してください。

mls RemoteFile 

ファイルのディレクトリー・サブツリー全体を転送するには、 mget サブコマンドや、 mput サブコマンドを使わずに、 サブツリーの tar アーカイブを、 バイナリー・フォーマットで転送します。

hash ハッシュ記号 (#) の表示を切り替えます。hash サブコマンドがオンの場合、ftp コマンドは転送されるデータ・ブロック (1024 バイト) ごとにハッシュ記号を 1 個表示します。
help [Subcommand] ヘルプ情報を表示します。? サブコマンドを参照してください。
image type image サブコマンドと同義。
lcd [Directory] ローカル・ホスト上の作業ディレクトリーを変更します。ディレクトリーを指定しない場合は、ftp コマンドはユーザーのホーム・ディレクトリーを使用します。
local M type local M サブコマンドと同義。
ls [RemoteDirectory] [LocalFile] リモート・ディレクトリーの簡略ファイル・リストをローカル・ファイルに書き込みます。RemoteDirectory パラメーターの指定がないと、ftp コマンドは現行リモート・ディレクトリーのリストを表示します。LocalFile パラメーターが指定されていないか - (ハイフン) である場合、ftp コマンドはローカル端末にリストを表示します。
macdef Macro サブコマンドのマクロを定義します。後に続く null 行までの行 (2 つ連続の行送り) はマクロのテキストとして保管されます。最高 4096 文字を含む 16 個までのマクロを定義できます。マクロは、再定義するか、 close サブコマンドを実行するまで、 定義されたままです。

$ (ドル記号) と ¥ (円記号) は ftp マクロ内の特殊文字です。$ 記号の後に 1 つ以上の数値を付けると、 呼び出し行の対応するマクロ・パラメーターで置き換えられます ($ サブコマンドを参照)。$ 記号の後に i という文字がくると、マクロがループすることを示し、$i 文字の組み合わせは各パス上の連続パラメーターに置き換えられます。

最初のマクロ・パラメーターは最初のパスで使用され、2 番目のマクロ・パラメーターは 2 番目のパスで使用されます (以下同様)。 ¥ 記号は次にくる文字が特殊な扱いを受けることを防止します。 $ および ¥. (円記号、ピリオド) 記号の特殊な意味を無効にするには、¥ 記号を使用します。

mdelete RemoteFiles リモート・ホストで RemoteFiles パラメーターによって指定されたファイルを拡張し、リモート・ファイルを削除します。
mdir [RemoteDirectories LocalFile] リモート・ホストで RemoteDirectories パラメーターによって指定されたディレクトリーを展開し、拡張したディレクトリーの内容のリストを LocalFile パラメーター内で指定されたファイルに書き込みます。RemoteDirectories パラメーターがパターン・マッチング文字を含んでいる場合、何も指定がなければ、mdir サブコマンドはローカル・ファイルを求めるプロンプトを表示します。RemoteDirectories パラメーターがブランクで区切られたリモート・ディレクトリーのリストである場合、そのリストの最後の引数はローカル・ファイル名または - (ハイフン) のどちらかでなければなりません。

LocalFile パラメーターが - (ハイフン) の場合、mdir サブコマンドはローカル端末装置上でリストを表示します。対話式のプロンプトがオンになっていると (prompt サブコマンドを参照)、 ftp コマンドはユーザーに対して、 最後のパラメーターがローカル・ファイルであって、 リモート・ディレクトリーではないことを確認するよう指示します。

mget RemoteFiles リモート・ホスト上で RemoteFiles パラメーターを拡張し、指示されたリモート・ファイルをローカル・ホスト上の現行ディレクトリーにコピーします。ファイル名の詳細については、 glob サブコマンドを参照してください。リモート・ファイル名はローカルで使用され、 casentransnmap サブコマンドによる設定で変更されます。ftp コマンドは、ファイルの転送時に、 formmodestructtype サブコマンドの、 現在の設定を使用します。
mkdir [RemoteDirectory] RemoteDirectory パラメーターで指定されたディレクトリーを リモート・ホスト上で作成します。
mls [RemoteDirectories LocalFile] リモート・ホストで RemoteDirectories パラメーターで指定された ディレクトリーを拡張し、指示されたリモート・ディレクトリーの簡略ファイル・リストをローカル・ファイルに書き込みます。RemoteDirectories パラメーターがパターン・マッチング文字を含んでいる場合、何も指定がなければ、mls サブコマンドはローカル・ファイルを求めるプロンプトを表示します。RemoteDirectories パラメーターがブランクで区切られたリモート・ディレクトリーのリストである場合、そのリストの最後の引数はローカル・ファイル名または - (ハイフン) のどちらかでなければなりません。

LocalFile パラメーターが - (ハイフン) の場合、mls サブコマンドはローカル端末装置上でリストを表示します。対話式のプロンプトがオンになっていると (prompt サブコマンドを参照)、 ftp コマンドはユーザーに対して、 最後のパラメーターがローカル・ファイルであって、 リモート・ディレクトリーではないことを確認するよう指示します。

mode [ stream | block ] ファイル転送モードを設定します。引数を指定しないと、デフォルトは stream です。
block
ファイル転送モードをブロックに設定します。
stream
ファイル転送モードをストリームに設定します。
項目 説明
modtime 指定したファイルの、最後に変更した時刻をリモート・マシン上に表示します。ftp コマンドを実行する前にホストに接続していないと、modtime サブコマンドは、エラー・メッセージを出して終了します。ftp コマンドは、最初のパラメーター以外のパラメーターを無視します。FileName パラメーターを指定していない場合には、ftp コマンドはファイル名を要求します。ファイル名を指定しないと、ftp コマンドは標準出力に使用方法メッセージを送り、サブコマンドを終了します。

FileName パラメーターで指定した名前がリモート・ホスト上に存在し、その名前が 1 つのファイルを示す場合、ftp コマンドはそのファイルの最後の変更時刻を示すメッセージを標準出力に送信し、サブコマンドを終了します。FileName にディレクトリーを指定した場合、ftp コマンドはエラー・メッセージを標準出力に送り、サブコマンドを終了します。

注: modtimemodtime サブコマンドは、メタキャラクターを解釈します (許可されている場合)。
mput [LocalFiles] LocalFiles パラメーターで指定されたファイルをローカル・ホスト上で拡張し、 指示されたローカル・ファイルをリモート・ホストにコピーします。ファイル名の詳細については、 glob サブコマンドを参照してください。ローカル・ファイル名はリモート・ホストで使用され、 ntransnmap サブコマンドによる設定で変更されます。 ftp コマンドは、ファイル転送時には、 typeformmodestruct サブコマンドの 現在の設定を使用します。
nlist [RemoteDirectory][LocalFile] 指定されたリモート・ディレクトリー (RemoteDirectory) の内容 のリストを指定されたローカル・ファイル (LocalFile) に書き込みます。RemoteDirectory パラメーターが 指定されていない場合は、nlist サブコマンドは 現行のリモート・ディレクトリーの内容を表示します。 LocalFile パラメーターが指定されていないか、または - (ハイフン) である場合、nlist サブコマンドはローカル端末装置上にリストを表示します。
nmap [InPattern OutPattern] ファイル名マッピング機能を設定、または解除します。パラメーターの指定がないと、ファイル名のマッピングはオフにされます。パラメーターを指定すると、mget サブコマンドと、 mput サブコマンド、また、 宛先ファイルを指定しない場合は、 get サブコマンドと、 put サブコマンドで、 ソース・ファイル名がマップされます。このサブコマンドは、ローカル・ホストとリモート・ホストで使用されるファイル命名の規則や慣行が異なる場合に便利です。 マッピングは、InPattern パラメーターと OutPattern パラメーターによって設定されたパターンどおりに行われます。

InPattern パラメーターは、 入力ファイル名のテンプレートを示します。このテンプレートは、 case、 および ntrans の設定値に従って、 既に処理されている場合があります。テンプレート変数の $1 から $9 までを InPattern パラメーターに入れることができます。InPattern パラメーター内の $ (ドル記号) と ¥$ (円記号、ドル記号) 以外のすべての文字は、 文字どおりに処理され、InPattern 変数間の区切り文字として使用されます。例えば、InPattern パラメーターが $1.$2 で、リモート・ファイル名が mydata.dat の場合、$1 の値は mydata に、$2 の値は dat になります。

OutPattern パラメーターは結果として生じるファイル名を決定します。$1 から $9 までの変数は InPattern パラメーターから派生した値に置き換えられ、変数 $0 は元のファイル名に置き換えられます。さらに、シーケンス [Sequence1,Sequence2 ] は、Sequence1 の値が null でなければ Sequence1 に置き換えられます。Sequence1 の値が null の場合は Sequence2 に置き換えられます。例えば、サブコマンド


nmap $1.$2.$3 [$1,$2].[$2,file]

は、myfile.data または myfile.data.old から myfile.data を、 myfile から myfile.file を、 そして .myfile から myfile.myfile を 生成します。OutPattern パラメーター内で、$ (ドル記号)、[ (左大括弧)、] (右大括弧)、 および , (コンマ) に特別な意味を持たせないようにするには、¥ (円記号) を使用します。

non-print form non-print サブコマンドと同義。
ntrans [InCharacters [OutCharacters]] ファイル名文字変換メカニズムをオンまたはオフにします。パラメーターを指定しないと、文字変換はオフになります。パラメーターを指定した場合、 mget サブコマンド、 および mput サブコマンドでは、 ソース・ファイル名の文字が変換され、 get サブコマンド、 および put サブコマンドでは、 宛先ファイル名を指定しない場合にソース・ファイル名の文字が変換されます。

このサブコマンドは、ローカル・ホストとリモート・ホストで使用されるファイル命名の規則や慣行が異なる場合に便利です。文字変換は、InCharacters および OutCharacters パラメーターによって設定されたパターン通りに行われます。 InCharacters パラメーター内の文字に一致するソース・ファイル名の文字は、OutCharacters パラメーター内の対応する文字に置き換えられます。

InCharacters パラメーターで指定した文字列の長さが OutCharacters パラメーターで指定した文字列より長い場合、 InCharacters パラメーターの文字列の中で OutCharacters パラメーターの中の文字と対応しないものは削除されます。

open HostName [Port] HostName パラメーターで指定されたホストで、FTP サーバーへの 接続を確立します。オプションのポート番号が指定されると、ftp コマンドはそのポートでサーバーへの接続を試みます。 自動ログイン機能を設定すると (つまり、 コマンド・ラインで -n フラグを指定しない場合)、 ftp コマンドはユーザーを FTP サーバーにログインさせようとします。

また、正確な情報が与えられ、適正な許可が設定された $HOME/.netrc ファイルが必要です。.netrc ファイルはホーム・ディレクトリーに入っていなければなりません。

passive ファイル転送用のパッシブ・モードに切り替えます。ファイル転送コマンド (getmgetputmput など) を、 パッシブ・モードをオフにして起動すると、ftp サーバーは、 クライアントに戻るデータ接続をオープンします。パッシブ・モードでは、クライアントは、 データの送受信時にサーバーへのデータ接続をオープンします。
private 保護レベルをプライベートに設定します (認証方式が設定されている場合のみ)。このレベルでは、データの保全性と機密性が保護されます。
prompt 対話式プロンプトを切り替えます。対話式のプロンプト表示機能をオン (デフォルト) にしている場合、 ftp コマンドは、mgetmputmdelete サブコマンドの実行時に、 複数のファイルの検索、送信、削除を行う前に、確認のプロンプトを表示します。そうでない場合、ftp コマンドは、指定されたすべてのファイル上で状況に応じた操作を行います。
protect このコマンドは、現行レベルの保護を戻します。
proxy [Subcommand] ftp コマンドを 2 次制御接続上で実行します。 このサブコマンドを使うと、ftp コマンドは、2 個のサーバー間でファイルを転送するために、2 個のリモート FTP サーバーに同時に接続できます。 最初の proxy サブコマンドは、 2 次制御接続を設定する open サブコマンドでなければなりません。2 次接続で実行可能なその他の ftp サブコマンドを参照するには、 proxy ? サブコマンドを入力します。

次のサブコマンドは、proxy サブコマンドを 前に付けると、別の機能を持ちます。

  • open サブコマンドは、 自動ログイン・プロセス中に新しいマクロを定義しません。
  • close サブコマンドは、 既存のマクロ定義を消去しません。
  • get、 および mget サブコマンドは、 1 次接続のホストから 2 次接続のホストへのファイル転送を行います。
  • putmputappend サブコマンドは、 2 次接続のホストから 1 次接続のホストへの転送を行います。
  • restart サブコマンドは、 proxy コマンドで取り扱うことができます。
  • status サブコマンドは、 正確な情報を表示します。

ファイル転送では、2 次接続上の FTP サーバーが PASV (パッシブ) 命令をサポートする必要があります。

put LocalFile [RemoteFile] ローカル・ファイルをリモート・ホストに格納します。RemoteFile パラメーターを指定しないと、ftp コマンドは、 ローカル・ファイルの名前を使ってリモート・ファイルに名前を付けます。リモート・ファイル名は、 ntrans、 および nmap サブコマンドでの設定によって、 変更されます。 ftp コマンドは、ファイル転送時には、 typeformmodestruct サブコマンドの 現在の設定を使用します。
pwd リモート・ホスト上の現行ディレクトリーの名前を表示します。
quit 接続をクローズして ftp コマンドを終了します。bye サブコマンドと同じように機能します。
quote String String パラメーターで指定した文字列と同じ文字列をリモート・ホストに送信します。String パラメーターに有効な値のリストを表示するには、 remotehelp または quote help サブコマンドを実行します。
注: データ転送を含む「Quoting (引用符で囲む)」コマンドを使用すると、予期しない結果になることがあります。
record struct record サブコマンドと同義。
recv RemoteFile [LocalFile] リモート・ファイルをローカル・ホストにコピーします。get サブコマンドと同じように機能します。
reinitialize すべての入出力をフラッシュして転送を完了させ、FTP セッションを再初期化します。リモート・ホストにログインせずに FTP セッションを開始した直後と同様に、すべてのデフォルト値をリセットします。
remotehelp [Subcommand] リモート FTP サーバーからのヘルプを要求します。
rename FromName ToName リモート・ホスト上のファイルの名前を変更します。
reset 応答キューを消去します。このサブコマンドはコマンドの構文解析を再同期します。
restart get | put | append 最後のチェックポイントが作成された位置からファイル転送を再開します。正常に実行するには、サブコマンドの構造、タイプ、フォーマットが、打ち切られたサブコマンドのものと同じでなければなりません。有効な引数は、getputappend です。
rmdir RemoteDirectory RemoteDirectory パラメーターで指定されたリモート・ディレクトリーを、リモート・ホストから除去します。
runique (ReceiveUnique) get、 および mget サブコマンドの実行時に、 ローカル宛先ファイルの固有ファイル名を作成する機能を切り替えます。この機能がオフ (デフォルト) になっていると、ftp コマンドはローカル・ファイルを上書きします。この機能がオンの場合は、ローカル宛先ファイルに指定された名前と同じ名前を持つローカル・ファイルがあると、ftp コマンドはローカル宛先ファイルに指定された名前に .1 を付けて変更します。その名前を使用しているローカル・ファイルが既に存在する場合、ftp コマンドは指定された名前に .2 という接尾語を付けます。 この名前も既にローカル・ファイルで使用されている場合、ftp コマンドは、固有ファイル名が見つかるまで接尾部の増分を続けます。固有ファイル名が見つからないまま .99 に達すると、接尾部の増分をやめます。固有ファイル名が見つからなかった場合、ftp コマンドはエラーを報告し、転送は行われません。runique サブコマンドはシェル・コマンドから生成されたローカル・ファイル名には影響を与えません。
safe 保護レベルを「安全」に設定します。このレベルでは、データは保全性が保護されます。
send LocalFile [RemoteFile] ローカル・ファイルをリモート・ホストに格納します。put サブコマンドと同じように機能します。
sendport FTP PORT 命令の使用を切り替えます。デフォルトでは、ftp コマンドは個々のデータ転送の接続を設定するときに、PORT 命令を使用します。PORT 命令が使用不可のときは、ftp コマンドはデータ転送に PORT 命令を使用しません。 PORT 命令は、PORT 命令を受信したことを正しく表示せず、PORT 命令の実行を無視する FTP サーバーを扱う場合に便利です。
site Args chmod コマンドを使って、アイドル・タイムアウト期間の表示または設定、ファイル作成 umask の表示または設定、あるいはファイルの許可の変更を行います。Args パラメーターに使用できる値は、umaskchmod です。
size RemoteFile RemoteFile パラメーターで指定したリモート・ファイルのサイズをバイト数で表示します。
status ftp コマンドの現行状況と、サブコマンドの状況を表示します。
stream mode stream サブコマンドと同義。
struct [ file | record ] データ転送構造タイプを設定します。有効な引数は filerecord です。
file
データ転送構造タイプをファイルに設定します。
record
データ転送構造タイプをレコードに設定します。
sunique (Send/Store Unique) put、 および mput サブコマンドの実行時に、 リモート宛先ファイルの固有ファイル名を作成する機能を切り替えます。この機能がオフ (デフォルト) であれば、ftp コマンドはリモート・ファイルを上書きします。それ以外の場合、リモート宛先ファイル用に指定したのと同じ名前がリモート・ファイルに付いていれば、リモート FTP サーバーがリモート宛先ファイル名を変更します。リモート・サーバーは必ず STOU 命令をサポートしていなければならないことに注意してください。
system リモート・マシンで実行されているオペレーティング・システムのタイプを表示します。
telnet form telnet サブコマンドと同義。
tenex type tenex サブコマンドと同義。
trace パケットのトレースを切り替えます。
type [ ascii | binary | ebcdic | image | local M | tenex ] ファイル転送タイプを設定します。有効な引数は asciibinaryebcdicimagelocal Mtenex です。引数が指定されない場合は、現行タイプを表示します。デフォルト・タイプは ascii です。binary タイプは ascii より効率的な場合があります。
ascii
ファイル転送タイプをネットワーク ASCII に設定します。これがデフォルトとなります。バイナリー・イメージ転送によるファイル転送のほうが効率的な場合があります。 詳細については binary 引数を参照してください。
binary
ファイル転送タイプをバイナリー・イメージに設定します。このタイプのほうが ASCII 転送より効率的な場合があります。
ebcdic
ファイル転送タイプを EBCDIC に設定します。
image
ファイル転送タイプをバイナリー・イメージに設定します。このタイプのほうが ASCII 転送より効率的な場合があります。
local M
ファイル転送タイプをローカルに設定します。M パラメーターは、機械語 1 語あたりのビット数を 10 進数で定義します。このパラメーターにはデフォルト値はありません。
tenex
ファイル転送タイプを、TENEX マシンに必要なタイプに設定します。
user User [Password] [Account] ローカル・ユーザー (User) をリモート FTP サーバーに知らせます。 リモート・サーバーが PasswordAccount パラメーターを要求している場合にそれらが指定されないと、ftp コマンドはパスワードやアカウントの入力を求めるプロンプトをローカルに表示します。Account パラメーターが必要な場合、ftp コマンドはリモート・ログイン処理が完了した後で Account パラメーターをリモート・サーバーに送信します。
注: コマンド・ラインに、 -n フラグを指定して、 自動ログインを使用不可にしない限り、ftp コマンドは、 リモート・サーバーへの初期接続時に自動的に、UserPasswordAccount パラメーターを送信します。また、自動ログインを発行するには、ホーム・ディレクトリー内に .netrc ファイルが必要です。
verbose 詳細モードを切り替えます。詳細モードがオン (デフォルト) の場合、ftp コマンドはリモート FTP サーバーからの応答をすべて表示します。また、ftp コマンドは、転送の完了時にすべてのファイル転送についての統計を表示します。

  1. ftp コマンドを起動し、システム canopus にログインし、ローカル・ヘルプ情報、リモート・ヘルプ情報、および状況を表示し、bellpromptruniquetrace、および verbose サブコマンドを切り替えてから、終了するには、次のように入力します。
    
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    Name (canopus:eric): dee
    331 Password required for dee.
    Password:
    230 User dee logged in.
    ftp> help
    Commands may be abbreviated. Commands are:
    !          delete          mdelete          proxy          runique
    $          debug           mdir             sendport       send
    account    dir             mget             put            size
    append     disconnect      mkdir            pwd            status
    ascii      form            mls              quit           struct
    bell       get             mode             quote          sunique
    binary     glob            modtime          recv           system
    bye        hash            mput             remotehelp     tenex
    case       help            nmap             rstatus        trace
    cd         image           nlist            rhelp          type
    cdup       lcd             ntrans           rename         user
    close      ls              open             reset          verbose
    cr         macdef          prompt           rmdir          ?
    clear      private         protect          safe
    ftp> remotehelp
    214-The following commands are recognized(* =>'s unimplemented).
     USER   PORT   RETR   MSND*  ALLO   DELE   SITE*  XMKD   CDUP 
     PASS   PASV   STOR   MSOM*  REST*  CWD    STAT*  RMD    XCUP
     ACCT*  TYPE   APPE   MSAM*  RNFR   XCWD   HELP   XRMD   STOU 
     REIN*  STRU   MLFL*  MRSQ*  RNTO   LIST   NOOP   PWD 
     QUIT   MODE   MAIL*  MRCP*  ABOR   NLST   MKD    XPWD 
     AUTH   ADAT   PROT   PBSZ   MIC    ENC    CCC
    214 Direct comments to ftp-bugs@canopus.austin.century.com.
    ftp> status
    Connected to canopus.austin.century.com.
    No proxy connection.
    Mode: stream; Type: ascii; Form: non-print; Structure: file
    Verbose: on; Bell: off; Prompting: on; Globbing: on
    Store unique: off; Receive unique: off
    Case: off; CR stripping: on
    Ntrans: off
    Nmap: off
    Hash mark printing: off; Use of PORT cmds: on
    ftp> bell
    Bell mode on.
    ftp> prompt
    Interactive mode off.
    ftp> runique
    Receive unique on.
    ftp> trace
    Packet tracing on.
    ftp> verbose
    Verbose mode off.
    ftp> quit
    $ 
  2. ftp コマンドを起動して、システム canopus にログインし、作業ディレクトリーを表示、変更し、ファイル転送タイプを ASCII に設定し、ローカル・ファイルをリモート・ホストに送信し、作業ディレクトリーを親ディレクトリーに変更して終了するには、次のように入力します。
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    Name (canopus:eric): dee
    331 Password required for dee.
    Password:
    230 User dee logged in.
    ftp> pwd
    257 "/home/dee" is current directory.
    ftp> cd desktop
    250 CWD command successful.
    ftp> type ascii
    200 Type set to A.
    ftp> send typescript
    200 PORT command successful.
    150 Opening data connection for typescript (128.114.4.99,1412).
    226 Transfer complete.
    ftp> cdup
    250 CWD command successful.
    ftp> bye
    221 Goodbye.
    $ 
  3. (.netrc ファイルを使って) 自動ログインで、ftp コマンドを 起動し、システム canopus とのセッションをオープンしてログインし、 作業ディレクトリーを親ディレクトリーに変更して、作業ディレクトリーを表示し、 現行ディレクトリーの内容をリストし、ファイルを削除して、 現行ディレクトリーの内容のリストをローカル・ファイルに書き込み、 セッションをクローズして終了するには、次のように入力します。
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    331 Password required for dee.
    230 User dee logged in.
    ftp> cdup
    250 CWD command successful.
    ftp> pwd
    257 "/home" is current directory.
    ftp> dir
    200 PORT command successful.
    150 Opening data connection for /usr/bin/ls (128.114.4.99,1407) 
    (0 bytes).
    total 104
    drwxr-xr-x   2 system        32 Feb 23 17:55 bin
    Drwxr-xr-x  26 rios        4000 May 30 17:18 bin1
    drwxr-xr-x   2 system        32 Feb 23 17:55 books
    drwxrwxrwx  18 rios        1152 Jun  5 13:41 dee
    -r--r--r--   1 system      9452 May 17 12:21 filesystems
    drwxr-xr-x   2 system        32 Feb 23 17:55 jim
    drwxr-xr-x   5 system        80 Feb 23 17:55 krs
    drwxrwxrwx   2 rios       16432 Feb 23 17:36 lost+found
    -rwxr-xr-x   1 rios        3651 May 24 16:45 oldmail
    drwxr-xr-x   2 system       256 Feb 23 17:55 pubserv
    drwxrwxrwx   2 system       144 Feb 23 17:55 rein989
    drwxr-xr-x   2 system       112 Feb 23 17:55 reinstall
    226 Transfer complete.
    ftp> delete oldmail
    250 DELE command successful.
    ftp> mdir /home/dee/bin binlist
    output to local-file: binlist? y
    200 PORT command successful.
    150 Opening data connection for /usr/bin/ls (128.114.4.99,1408) (0 bytes).
    226 Transfer complete.
    ftp> close
    221 Goodbye.
    ftp> quit
    $  

ファイル

項目 説明
/usr/samples/tcpip/netrc サンプルの .netrc ファイルが入っています。
/etc/syslog.conf syslogd デーモンの構成情報が入っています。