日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
FTP(1) FreeBSD 一般コマンドマニュアル FTP(1) 名称 ftp -- インターネットファイル転送プログラム 書式 ftp [-46AadefginpRtVv] [-N netrc] [-o output] [-P port] [-q quittime] [-r retry] [-s srcaddr] [-T dir,max[,inc]] [[user@]host [port]] [[user@]host:[path][/]] [file:///path] [ftp://[user[:password]@]host[:port]/path[/][;type=X]] [http://[user[:password]@]host[:port]/path] [...] ftp -u URL file [...] 解説 ftp は、インターネット標準のファイル転送プロトコル (File Transfer Proto col) のユーザインタフェースです。プログラムによって、ユーザは、ファイルを リモートネットワークサイトに転送したり、リモートネットワークサイトから転 送することができます。 最後の 5 つの引数は、ファイルが、FTP または HTTP プロトコルを使用するか、 または直接コピーすることによって、カレントディレクトリに取って来ます。こ れは、スクリプトのために理想的です。詳細については、下記の「ファイルの自 動フェッチ (取って来る)」を参照していください。 オプションは、コマンド行で、またはコマンドインタプリタで指定されます。 -4 ftp は、IPv4 アドレスだけを使用するように強制します。 -6 ftp は、IPv6 アドレスだけを使用するように強制します。 -A アクティブモードの ftp を強制します。デフォルトで、ftp は、 パッシブモードの ftp を使用することを試みて、パッシブがサーバ によってサポートされないなら、アクティブモードに戻ります。こ のオプションによって、ftp は、常にアクティブな接続を使用しま す。それは、パッシブモードを適切に実装していない非常に古い サーバと接続するためだけに役に立ちます。 -a ftp は、通常のログイン手続を迂回し、代わりに匿名 (anonymous) のログインを使用します。 -d デバッグを有効にします。 -e コマンド行の編集を無効にします。これは、Emacs の ange-ftp モードのために役に立ちます。 -f FTP または HTTP プロキシを経由して転送するためのキャッシュの 再ロードを強制します。 -g ファイル名のグロブ (ファイル名置換) を無効にします。 -i 複数のファイルの転送の間に対話型のプロンプトをオフに切り替え ます。 -N netrc ~/.netrc の代わりに netrc を使用します。詳しい情報について は、「.netrc ファイル」を参照してください。 -n 自動フェッチ (取って来る) 転送されない初期の接続で ftp が、 ``auto-login'' を試みることを抑制します。自動ログインが有効に されるなら、ftp は、リモートマシンのアカウントを記述している エントリがあるか、ユーザのホームディレクトリの .netrc (下記参 照) ファイルをチェックします。エントリが存在しないなら、ftp は、リモートのマシンログイン名 (デフォルトは、ローカルマシン のユーザ識別です) のためにプロンプトを出し、必要であるなら、 ログインのパスワードとアカウントのためのプロンプトを出しま す。自動フェッチ (取って来る) 転送のための自動ログインを上書 きするために、必要に応じて、ユーザ名 (とオプションでパスワー ド) を指定します。 -o output ファイルを自動フェッチするとき、内容を output に保存します。 output は、下記の「ファイル名前付け規約」にしたがって解析され ます。output が `-' ではないか、または `|' で始まらないなら、 指定された最初のファイルだけが output に取り出されます。すべ ての他のファイルは、それらのリモートの名前の basename に取り 出されます。訳注: basename(1) を参照。 -P port ポート番号を port に設定します。 -p ファイアウォールでフィルタリングされている接続の背後で使用す るパッシブモードの操作を有効にします。このオプションは、ftp が、現在、デフォルトでパッシブモードを使用することを試みてい るので、廃止される可能性があり、サーバがパッシブな接続をサ ポートしないなら、アクティブモードに戻ります。 -q quittime 接続が quittime 秒、ストールした (行き詰まる) なら、終了しま す。 -R プロキシなしで、すべての自動フェッチ (取って来る) を再開しま す。 -r wait 失敗したなら、wait 秒停止して、再び接続を試みます。 -s srcaddr すべての接続のためのローカル IP アドレスとして srcaddr を使用 します。 -t パケットのトレースを有効にします。 -T direction,maximum[,increment] direction のための最大転送速度を maximum バイト/秒に設定し、 指定されるなら、increment バイト/秒に増加します。詳細について は、rate を参照してください。 -u URL file [...] コマンド行のファイルを URL にアップロードします、ここで、URL は、(単一のファイルのアップロードのためにオプションでターゲッ トのファイル名を付けて) 自動フェッチによってサポートされるよ うな ftp URL タイプの 1 つで、file は、アップロードされる 1 つ以上のローカルなファイルです。 -V 出力が端末のときに有効にされるデフォルトを上書きして、verbose と progress を無効にします。 -v verbose と progress を有効にします。これは、出力が端末 (で progress の場合に、ftp は、フォアグラウンドプロセスである) で あるなら、デフォルトです。ftp は、データ転送統計を報告するの と同様に、リモートサーバからすべての応答を表示することを強制 されます。 ftp が、通信するクライアントホストは、コマンド行で指定されます。これが行 われるなら、ftp は、直ちに、そのホストの FTP サーバとの接続を確立すること を試みます。そうでなければ、ftp は、そのコマンドインタプリタに入り、ユー ザからの命令を待ちます。ftp が、ユーザからのコマンドを待っているとき、プ ロンプト `ftp>' が、ユーザに出力されます。次のコマンドが ftp によって解釈 されます: ! [command [args]] ローカルマシンで対話型なシェルを呼び出します。引数があるな ら、最初は、その引数としての引数の残りで直接実行するコマンド であると考えられます。 $ macro-name [args] macdef コマンドで定義されたマクロ macro-name 実行します。引数 は、グロブ (ファイル名置換) されないマクロに渡されます。 account [passwd] いったんログインが成功して完了すると、リソースへのアクセスの ためのリモートシステムによって必要とされる補足のパスワードを 供給します。引数が含まれないなら、ユーザは、エコーしない入力 モードでアカウントのパスワードのためにプロンプトが出されま す。 append local-file [remote-file] ローカルファイルをリモートマシンのファイルの終りに追加しま す。remote-file が指定されないままであるなら、ローカルファイ ル名は、あらゆる ntrans または nmap 設定によって変更された後 に、リモートファイルの名前を付けるために使用されます。ファイ ル転送は、type, format, mode と structure のための現在の設定 を使用します。 ascii ファイル転送の type をネットワーク ASCII に設定します。これ は、デフォルトのタイプです。 bell 各ファイル転送コマンドが完了した後に、ベルが鳴らされることを 取り決めます。 binary バイナリイメージの転送をサポートするために、ファイル転送 type を設定します。 bye リモートサーバで FTP セッションを終了し、ftp を終了します。ま た、ファイルの終わりは、セッションを終了して、実行を終了しま す。 case get, mget と mput コマンドの間にマップされているリモートコン ピュータのファイル名の大文字小文字を切り替えます。case がオン の (デフォルトは、オフです) とき、大文字のすべての文字がある リモートコンピュータのファイル名は、マップされた文字で小文字 でローカルなディレクトリに書き込まれます。 cd remote-directory リモートマシンの作業ディレクトリを remote-directory に変更し ます。 cdup リモートマシンの作業ディレクトリを現在のリモートマシンの作業 ディレクトリの親に変更します。 chmod mode remote-file リモートシステムのファイル remote-file のパーミッションのモー ドを mode に変更します。 close リモートサーバで FTP セッションを終了して、コマンドインタプリ タに返ります。あらゆる定義されたマクロは、削除されます。 cr ASCII タイプのファイルを検索して取り出す間にキャリッジリター ンの取り除きを切り替えます。レコードは、ascii タイプのファイ ル転送の間にキャリッジリターン/ ラインフィードシーケンスに よって示されます。cr がオンである (デフォルト) とき、キャリッ ジリターンは、UNIX の単一のラインフィードのレコードのデリミタ と一致するためにこのシーケンスから取り除かれます。UNIX でない リモートシステムのレコードは、単一のラインフィードを含んでい ます。ASCII タイプの転送が行われるとき、これらのラインフィー ドは、cr がオフであるときのみ、レコードのデリミタと区別されま す。 delete remote-file リモートマシンのファイル remote-file を削除します。 dir [remote-path [local-file]] リモートマシンのディレクトリの内容のリストを印刷 (表示) しま す。リストは、サーバが、含むことを選択する、あらゆるシステム 依存の情報を含んでいます。例えば、ほとんどの UNIX システム は、コマンド `ls -l' からの出力を生成します。remote-path が指 定されないままであるなら、現在の作業ディレクトリが使用されま す。対話型のプロンプトがオンであるなら、ftp は、実に最後の引 数が、実際に dir の出力を受け取るためのターゲットのローカル ファイルであることを確認するために、ユーザにプロンプトを出し ます。ローカルファイルが指定されないか、または、local-file が `-' であるなら、出力は、端末に送られます。 disconnect close と同義語。 edit コマンド行編集、と文脈依存のコマンドとファイル補完を切り替え ます。これは、入力が端末からであるなら、自動的に有効にされ、 そうでなければ、無効にされます。 epsv epsv4 epsv6 それぞれ、すべての IP、IPv4 と IPv6 接続で、拡張された EPSV と EPRT コマンドを使用を切り替えます。最初に EPSV / EPRT を試 み、次に PASV / PORT を試します。これは、デフォルトで有効にさ れます。拡張コマンドが失敗するなら、このオプションは、現在の 接続の存続時間、または epsv, epsv4 または epsv6 が再び実行さ れるまで、一時的に無効にされます。 exit bye と同義語。 features リモートサーバがどの機能をサポートしているかを (FEAT コマンド を使用して) 表示します。 fget localfile ファイル名ごとに 1 行がある、localfile にリストされたファイル を取り出します。 form format ファイル転送 form (形式) を format に設定します。デフォルトの (と唯一サポートされている) 形式は、``non-print'' (印刷なし) です。 ftp host [port] open と同義語。 ftp_debug [ftp_debug-value] デバッグモードを切り替えます。オプションの ftp_debug-value が 指定されるなら、それは、デバッグレベルを設定するために使用さ れます。デバッグモードであるとき、ftp は、文字列 `-->' によっ て先導されてリモートマシンに送信された各コマンドを印刷しま す。 gate [host [port]] TIS FWTK と Gauntlet ftp プロキシを通して接続するために使用さ れる gate-ftp モードを切り替えます。これは、gate-ftp サーバが (明白 ユーザによって明示的であるか、または FTPSERVER 環境変数 からのいずれかで) 設定されなかったなら、許可されません。host が与えられるなら、gate-ftp モードは、有効にされ、gate-ftp サーバは、host に設定されます。また、port が与えられるなら、 それは、gate-ftp サーバに接続するポートとして使用されます。 get remote-file [local-file] remote-file を検索して取り出し、それをローカルマシンに格納し ます。ローカルファイル名が指定されないなら、それは、現在の case, ntrans と nmap 設定による変更を前提として、リモートマシ ンにある同じ名前を与えられます。type, form, mode と structure のための現在の設定は、ファイルを転送する間に使用されます。 glob mdelete, mget, mput と mreget のためのファイル名の展開を切り 替えます。グロブ (ファイル名置換) が glob でオフに切り替えら れるなら、ファイル名の引数は、そのまま取られて、展開されませ ん。mput のためのグロブ (ファイル名置換) は、csh(1) として行 われます。mdelete, mget と mreget について、各リモートファイ ル名は、リモートのマシンで個別に展開され、リストは、マージさ れません。ディレクトリ名の展開は、通常のファイルの名前の展開 と異なるかもしれません: 正確な結果は、外部のオペレーティング システムと ftp サーバに依存し、`mls remote-files -' を行うこ とによってプレビュー表示することができます。注: mget, mput と mreget は、ディレクトリのサブツリーの全体のファイルを転送する ことは意図されていません。それは、(バイナリモードで) サブツ リーの tar(1) アーカイブを転送することによって行うことができ ます hash [size] 転送された各データブロック毎に印刷されたハッシュ記号 (`#') を 切り替えます。データブロックのサイズは、1024 バイトをデフォル トとします。バイト単位の size を指定することによって、これを 変更することができます。hash を有効にすると、progress は、無 効にされます。 help [command] command の意味に関する情報を与えるメッセージを印刷 (表示) し ます。引数が与えられないなら、ftp は、既知のコマンドのリスト を印刷 (表示) します。 idle [seconds] リモートサーバのアクティブでないタイマを seconds 秒に設定しま す。seconds が省略されるなら、現在のアクティブでないタイマが 印刷 (表示) されます。 image binary と同義語。 lcd [directory] ローカルマシンの作業ディレクトリを変更します。directory が指 定されないなら、ユーザのホームディレクトリが使用されます。 less file page と同義語。 lpage local-file set pager オプションによって指定されたプログラムで local-file を表示します。 lpwd ローカルマシンの作業ディレクトリを印刷 (表示) します。 ls [remote-path [local-file]] dir と同義語。 macdef macro-name マクロを定義します。それに続く行は、マクロ macro-name として 格納されます。空行 (ファイルの連続する改行文字または端末から のキャリッジリターン) は、マクロの入力モードを終了します。す べての定義されたマクロで 16 個のマクロと合計で 4096 文字の制 限があります。マクロ名は、最大 8 文字を使用できます。マクロ は、それらが定義される現在のセッション内にのみ適用でき、(また はセッションの外側で定義されるなら、次の open コマンドで呼び 出されるセッションに適用できます)、close コマンドが実行される まで、定義されたままとなります。マクロを呼び出すためには、$ コマンドを使用します (上記参照)。 マクロプロセッサは、特殊文字として `$' と `\' を解釈します。 数字 (または複数の数字) が続く `$' は、マクロを呼び出すコマン ドラインで、対応する引数によって置き換えられます。`i' が後に 続く `$' は、実行しているマクロがループにされることをマクロプ ロセッサに伝えます。最初のパスで、``$i'' は、マクロ呼び出しコ マンドラインで最初の引数によって置き換えられ、2 番目のパス で、それは、2 番目の引数によって置き換えられ、その他、同様で す。`\' に続く任意の文字は、その文字によって置き換えられま す。`$' の特別な処理を防ぐためには、`\' を使用します。 mdelete [remote-files] リモートマシンの remote-files を削除します。 mdir remote-files local-file 複数のリモートファイルが指定されることを除いて、dir に似てい ます。対話型なプロンプトがオンであるなら、ftp は、最後の引数 が、実際に mdir の出力を受け取るためのターゲットのローカル ファイルであることを確認するために、ユーザにプロンプトを出し ます。 mget remote-files リモートマシンの remote-files を展開し、このように生成された ファイル名ごとに get を行います。ファイル名の展開に関する詳細 については、glob を参照してください。次に、結果のファイル名 は、case, ntrans と nmap 設定にしたがって処理されます。ファイ ルは、`lcd directory' で変更することができる、ローカルな作業 ディレクトリに転送されます。`! mkdir directory' で、新しい ローカルディレクトリを作成することができます。 mkdir directory-name リモートマシンのディレクトリを作成します。 mls remote-files local-file 複数のリモートファイルが指定され、local-file が指定されなけれ ばならないことを除いて、ls に似ています。対話型なプロンプトが オンであるなら、ftp は、最後の引数が、実際に mls の出力を受け 取るためのターゲットのローカルファイルであることを確認するた めに、ユーザにプロンプトを出します。 mlsd [remote-path] MLSD を使用してマシンで解析可能な (与えられないなら、現在の ディレクトリをデフォルトとするべき) remote-path の内容を表示 します。表示の形式は、`remopts mlst ...' で変更することができ ます。 mlst [remote-path] MLST を使用してマシンで解析可能な (与えられないなら、現在の ディレクトリをデフォルトとするべき) remote-path に関する詳細 を表示します。表示の形式は、`remopts mlst ...' で変更すること ができます。 mode mode-name ファイル転送 mode を mode-name に設定します。デフォルトの (と 唯一のサポートされている) モードは、``stream'' です。 modtime remote-file リモートマシンのファイルの最後の更新時刻を RFC2822 形式で表示 します。 more file page と同義語。 mput local-files 引数として与えられたローカルファイルのリストのワイルドカード を展開し、結果のリストのファイルごとに put を行います。ファイ ル名の展開の詳細については、glob を参照してください。次に、結 果のファイル名は、ntrans と nmap 設定にしたがって処理されま す。 mreget remote-files mget のようですが、get の代わりに reget を実行します。 msend local-files mput と同義語。 newer remote-file [local-file] リモートファイルの更新時刻が現在のシステムのファイルより新し い場合のみ、ファイルを取得します。現在のシステムにファイルが 存在しないなら、リモートファイルは、newer (より新しい) と見な されます。そうでなければ、このコマンドは、get と同一です。 nlist [remote-path [local-file]] ls と同義語。 nmap [inpattern outpattern] ファイル名のマッピングメカニズムを設定するか、または未設定と します。引数が指定されないなら、ファイル名のマッピングメカニ ズムは、未設定です。引数が指定されるなら、リモートファイル名 は、指定されたリモートのターゲットファイル名なしで発行される mput コマンドと put コマンドの間にマップされます。引数が指定 されるなら、ローカルファイル名は、指定されたローカルのター ゲットファイル名なし発行される mget コマンドと get コマンドの 間にマップされます。このコマンドは、異なったファイルの命名規 則または慣習で UNIX でないリモートコンピュータと接続すると き、役に立ちます。マッピングは、inpattern と outpattern に よって設定されたパターンに従います。[Inpattern] は、(ntrans と case の設定にしたがって既に処理されている) 着信ファイル名 のためのテンプレートです。変数のテンプレートは、inpattern の シーケンス ``$1'', ``$2'', ... ``$9'' 含むことによって達成さ れます。`$' 文字のこの特別な処理を防ぐためには、`\' を使用し ます。すべての他の文字は、文字どおりに扱われて、nmap の [inpattern] 変数の値を決定するために使用されます。例えば、 inpattern $1.$2 とリモートファイル名 "mydata.data" が与えられ ると、$1 は、値 "mydata" があり、$2 は、値 "data" がありま す。outpattern は、結果のマップされたファイル名を決定します。 シーケンス ``$1'', ``$2'' ... ``$9'' は、inpattern テンプ レートから生じる任意の値によって置き換えられます。シーケンス ``$0'' は、オリジナルのファイル名によって置き換えられます。さ らに、シーケンス ``[seq1, seq2]'' は、seq1 がヌル文字列でない なら、[seq1] によって置き換えられます。そうでなければ、それ は、seq2 によって置き換えられます。例えば、コマンド nmap $1.$2.$3 [$1,$2].[$2,file] は、入力ファイル名 "myfile.data" と "myfile.data.old" に対し て出力ファイル名 "myfile.data" を生成し、入力ファイル名 "myfile" に対して "myfile.file" を生成し、そして入力ファイル 名 ".myfile" に対して "myfile.myfile" を生成します。空間は、 次の例のように outpattern に含まれるかもしれません: nmap $1 sed s/ *$// > $1 `$', `[', `]' と `,' 文字の特別な処理を防ぐためには、`\' 文字 を使用します。 ntrans [inchars [outchars]] ファイル名の文字変換メカニズムを設定するか、または未設定とし ます。引数が指定されないなら、ファイル名の文字変換メカニズム は、未設定とされます。引数が指定されるなら、リモートファイル 名の文字は、指定されたリモートのターゲットファイル名なしで発 行される mput コマンドと put コマンドの間に変換されます。引数 が指定されるなら、ローカルファイル名の文字は、指定されたロー カルなターゲットファイル名なしで発行される mget コマンドと get コマンドの間に変換されます。このコマンドは、異なったファ イルの命名規則または慣習で UNIX でないリモートコンピュータと 接続するとき、役に立ちます。inchars の文字と一致しているファ イル名の文字は、outchars の対応する文字で置き換えられます。 inchars の文字の位置が outchars の長さより長いなら、文字は、 ファイル名から削除されます。 open host [port] 指定された host の FTP サーバとの接続を確立します。オプション のポート番号が供給され、その場合に、ftp は、そのポートで FTP サーバに接続することを試みます。set auto-login オプションがオ ンであるなら (デフォルト)、ftp は、また、ユーザが FTP サーバ に自動的にログインすることを試みます (以下を参照)。 page file file を検索して取り出し、set pager オプションによって指定され たプログラムで表示します。 passive [auto] パッシブモードを切り替えます (引数が与えられないなら)。auto が与えられるなら、あたかも FTPMODE が `auto' に設定されるかの ように動作します。パッシブモードがオンに切り替えられるなら (デフォルト)、ftp は、PORT コマンドの代わりに、すべてのデータ の接続のために PASV コマンドを送ります。PASV コマンドは、リ モートサーバがデータ接続のためにポートをオープンし、そのポー トのアドレスを返すように要求します。リモートサーバは、その ポートを listen (接続を受け付け) し、クライアントは、それに接 続します。より古い PORT コマンドを使用するとき、クライアント は、ポートを listen (接続を受け付け) し、そのアドレスをリモー トサーバに送り、リモートサーバは、それに接続を戻します。パッ シブモードは、トラフィックの方向性を制御するゲートウェイルー タまたはホストを通して ftp を使用するとき、役に立ちます。(FTP サーバは、RFC1123 によって PASV コマンドをサポートするために 必要ですが、いくつかは、そうでないことに注意してください。) pdir [remote-path] dir [remote-path] を実行し、set pager オプションによって指定 されたプログラムで結果を表示します。 pls [remote-path] ls [remote-path] を実行し、set pager オプションによって指定さ れたプログラムで結果を表示します。 pmlsd [remote-path] mlsd [remote-path] を実行し、set pager オプションによって指定 されたプログラムで結果を表示します。 preserve 検索して取り出されたファイルの更新時刻の保存を切り替えます。 progress 転送の進捗バーの表示を切り替えます。進捗バーは、`-' として local-file または `|' で開始されるコマンドがある転送に対して 表示されます。詳細については、「ファイル名前付け規約」を参照 してください。progress を有効にして、hash を無効にします。 prompt 対話型のプロンプトを切り替えます。対話型のプロンプトは、ユー ザがファイルを選択的に検索して取り出すか、または格納すること を許可するために、複数のファイル転送の間に起こます。プロンプ トがオフに切り替えられる (デフォルトは、オン) なら、あらゆる mget または mput は、すべてのファイルを転送し、あらゆる mdelete は、すべてのファイルを削除します。 プロンプツがオンのとき、次のコマンドは、プロンプトで利用可能 です: a 現在のファイルに `yes' と答えて、現在のコマンドのた めのあらゆる残りのファイルに `yes' と自動的に答えま す。 n `no' と答えて、ファイルを転送しません。 p 現在のファイルに `yes' と答えて、(``prompt off'' が 与えられるように) プロンプトモードをオフに切り替え ます。 q 現在の操作を終了します。 y `yes' と答えて、ファイルを転送します。 ? ヘルプメッセージを表示します。 あらゆる他の応答は、現在のファイルに `yes' と答えます。 proxy ftp-command 2 番目の制御の接続で ftp コマンドを実行します。このコマンドに よって、同時の接続は、2 つのサーバとの間のファイルを転送する ために 2 つのリモート FTP サーバを許可します。最初の proxy コ マンドは、2 番目の制御の接続を確立するために open されている べきです。2 番目の接続で実行可能な他の FTP コマンドを調べるた めに、コマンド "proxy ?" を入力します。次のコマンドは、proxy によって前置きするとき、異なって振る舞います: open は、自動ロ グインプロセスの間に新しいマクロを定義せず、close は、既存の マクロの定義を消去せず、get と mget は、主要な制御接続のホス トから 2 番目の制御接続のホストにファイルを転送し、そして put, mput と append は、2 番目の制御接続のホストから主要な制 御接続のホストにファイルを転送します。サードパーティのファイ ル転送は、2 番目の制御接続のサーバによって FTP プロトコルの PASV コマンドのサポートに依存します。 put local-file [remote-file] リモートマシンでローカルファイルを格納します。remote-file が 指定されないままであるなら、ローカルファイル名は、リモート ファイルを名前付けのあらゆる ntrans または nmap 設定にした がって処理した後に、使用されます。ファイル転送は、type, format, mode と structure のための現在の設定を使用します。 pwd リモートマシンの現在の作業ディレクトリの名前を印刷 (表示) し ます。 quit bye と同義語。 quote arg1 arg2 ... 指定された引数は、リモートの FTP サーバに逐次的に送られます。 rate direction [maximum [increment]] 最大転送速度を maximum バイト/秒に減速します。maximum が 0 で あるなら、減速を無効にします。 direction (方向) は、次の 1 つです: all 双方向。 get 着信の転送。 put 発信の転送。 次の与えられたシグナルが受け取られるたびに、increment バイト (デフォルト: 1024) によって、直ちに maximum を修正することが できます: SIGUSR1 increment バイトずつ maximum に増加します。 SIGUSR2 increment バイトずつ maximum に減少します。結 果は、正の数値でなければなりません。 maximum が供給されないなら、現在の減速速度が表示されます。 注: rate は、ASCII モード転送についてまだ実装されていません。 rcvbuf size ソケット受信バッファのサイズを size に設定します。 recv remote-file [local-file] get と同義語。 reget remote-file [local-file] reget は、local-file が存在し、remote-file より小さいなら、 local-file が remote-file の部分的に転送されたコピーであると 推測され、転送が、失敗の明白なポイントから継続されることを除 いて、get のように動作します。このコマンドは、接続を落としが ちなネットワークを越えて非常に大きなファイルを転送するとき、 役に立ちます。 remopts command [command-options] command-options (コマンドオプションの不在は、コマンド特有な基 本で処理される) への command のためにリモート FTP サーバのオ プションを設定します。オプションをサポートすることが知られて いるリモートの FTP コマンドは、次の通りです: (MLSD と MLST の ために使用される) `MLST'。 rename [from [to]] リモートマシンのファイル from からファイル to に名前を変更し ます。 reset 応答キューをクリアします。このコマンドは、リモート FTP サーバ でコマンド/応答シーケンスを再同期します。再同期は、リモート サーバによって FTP プロトコルの必要な継続違反であるかもしれま せん。 restart marker 示された marker に直ちに続く get または put を再開します。 UNIX システムで、マーカは、通常、ファイルのバイトオフセットで す。 rhelp [command-name] リモート FTP サーバからヘルプを要求します。command-name が指 定されるなら、同様に、サーバに供給されます。 rmdir directory-name リモートマシンのディレクトリを削除します。 rstatus [remote-file] 引数なしで、リモートマシンの状態を表示します。remote-file が 指定されるなら、リモートマシンの remote-file の状態を表示しま す。 runique ユニークなファイル名があるローカルシステムのファイルの格納を 切り替えます。get または mget コマンドのためのターゲットの ローカルファイル名と等しい名前があるファイルが既に存在するな ら、".1" が、名前に付け加えられます。結果の名前が別の既存の ファイルと一致しているなら、".2" がオリジナルの名前に付け加え られます。この処理が ".99" まで続くなら、エラーメッセージが、 印刷 (表示) され、転送は、起こりません。生成されたユニークな ファイル名は、報告されます。runique は、シェルコマンド (下記 参照) から生成されたローカルファイルに影響しないことに注意し てくださいデフォルト値は、オフです。 send local-file [remote-file] put と同義語。 sendport PORT コマンドの使用を切り替えます。デフォルトで、ftp は、デー タ転送ごとに接続を確立すとき、PORT コマンドを使用することを試 みます。PORT コマンドの使用は、複数のファイル転送を実行すると き、遅延を防止することができます。PORT コマンドが失敗するな ら、ftp は、デフォルトのデータポートを使用します。PORT コマン ドの使用が無効にされるとき、データ転送ごとの PORT コマンドを 使用する試みは行われません。これは、PORT コマンドを無視する特 定の FTP 実装に役に立ちますが、それらが受け付けられたことを間 違って示します。 set [option value] option を value に設定します。option と value が与えられない なら、オプションとそれらの値のすべてを表示します。現在サポー トされるオプションは、次の通りです: anonpass デフォルトは、$FTPANONPASS です。 ftp_proxy デフォルトは、$ftp_proxy です。 http_proxy デフォルトは、$http_proxy です。 no_proxy デフォルトは、$no_proxy です。 pager デフォルトは、$PAGER です。 prompt デフォルトは、$FTPPROMPT です。 rprompt デフォルトは、$FTPRPROMPT です。 site arg1 arg2 ... 指定された引数は、SITE コマンドとしてリモート FTP サーバにそ のまま送信されます。 size remote-file リモートマシンの remote-file のサイズを返します。 sndbuf size ソケット送信バッファのサイズを size に設定します。 status ftp の現在の状態を表示します。 struct struct-name ファイル転送の structure を struct-name に設定します。デフォ ルト (と唯一サポートされる) 構造は、``file'' です。 sunique ユニークなファイル名の下のリモートマシンのファイルの格納を切 り替えます。リモート FTP サーバは、成功して完了するために FTP プロトコル STOU コマンドをサポートしなければなりません。リ モートサーバは、ユニークな名前を報告します。デフォルト値は、 オフです。 system リモートマシンで実行しているオペレーティングシステムのタイプ を表示します。 tenex TENEX マシンと通信するために必要とされるファイル転送タイプを 設定します。 throttle rate と同義語。 trace パケットのトレースを切り替えます。 type [type-name] ファイル転送 type を type-name に設定します。タイプが指定され ないなら、現在のタイプが印刷 (表示) されます。デフォルトのタ イプは、ネットワーク ASCII です。 umask [newmask] リモートサーバのデフォルトの umask を newmask に設定します。 newmask が省略されるなら、現在の umask が印刷 (表示) されま す。 unset option option を未設定とします。詳細については、set を参照してくださ い。 usage command command のための使用法のメッセージを印刷 (表示) します。 user user-name [password [account]] リモート FTP サーバにユーザ自身を識別させます。password が指 定されず、サーバがそれを必要とするなら、ftp は、(ローカルなエ コーを無効にした後に) パスワードのためにユーザにプロンプトを 出します。account フィールドが指定されず、FTP サーバがそれを 必要とするなら、ユーザは、アカウントのためにプロンプトを出し ます。account フィールドが指定されるなら、account コマンド は、リモートサーバがログインするために、それを必要としなかっ たなら、ログインのシーケンスが終了した後に、リモートサーバに 中継されます。ftp が、無効にされた ``auto-login'' で呼び出さ れないなら、このプロセスは、FTP サーバとの初期の接続で自動的 に行われます。 verbose 冗長モードを切り替えます。冗長なモードで、FTP サーバからのす べての応答は、ユーザに表示されます。さらに、冗長がオンである なr、ファイル転送が終了したとき、転送の効率に関する統計が、報 告されます。デフォルトで、冗長は、オンです。 xferbuf size ソケットの送信と受信バッファのサイズを size に設定します。 ? [command] help と同義語。 空白を埋め込んだコマンド引数は、クォート `"' マークでクォートされます。 設定を切り替えるコマンドは、適切な設定を強制するために明白な on または off 引数を取ることができます。 引数としてバイトカウントを取るコマンド (例えば、hash, rate と xferbuf) は、引数の解釈を変更する引数でオプションの接尾辞をサポートします。サポー トされた接尾辞は、次の通りです: b 修正なしを引き起こします。(オプション) k キロ。引数を 1024 倍します。 m メガ。引数を 1048576 倍します。 g ギガ。引数を 1073741824 倍します。 転送が進行している間に ftp が、SIGINFO (stty(1) の ``status'' 引数を参照) または SIGQUIT シグナルを受け取るなら、現在の転送速度の統計は、標準の完了 メッセージと同じ形式で、標準エラー出力に書き込まれます。 ファイルの自動フェッチ (取って来る) 標準のコマンドに加えて、ftp のこのバージョンは、自動フェッチの機能をサ ポートします。自動フェッチを有効にするために、コマンド行でホスト名/ファイ ルのリストを単に渡します。 次の形式は、自動フェッチの要素のための有効な構文です: [user@]host:[path][/] ``Classic'' (古典的な) FTP 形式。 path がグロブ文字を含んでいて、グロブ (ファイル名置換) (glob を参 照) が有効であるなら、`mget path' と同等のことが実行されます。 path のディレクトリの構成要素がグロブ (ファイル名置換) 文字を含んで いないなら、カレントディレクトリの path の名前の basename (basename(1) を参照) でローカルに格納します。そうでなければ、完全な リモート名は、ローカルなルートディレクトリに関連してローカルな名前 として使用されます。 ftp://[user[:password]@]host[:port]/path[/][;type=X] FTP URL は、set ftp_proxy が定義されていないなら、FTP プロトコルを 使用して検索して取り出されます。そうでなければ、set ftp_proxy で定 義されたプロキシを通して HTTP 使用して URL を転送します。set ftp_proxy が定義されず、user が与えられるなら、user としてのログイ ンします。この場合に、password が供給されるなら、それを使用し、そう でなければ、パスワードのためにユーザにプロンプトを出します。 `;type=A' または `;type=I' の接尾辞が供給されるなら、転送タイプは、 (それぞれ) ASCII またはバイナリとして行われます。デフォルトの転送タ イプは、バイナリです。 RFC3986 に準拠するために、ftp は、次のように、``ftp://'' の自動 フェッチ URL の path の部分を解釈します: • host[:port] の直後の `/' は、path の前のセパレータとして解釈さ れ、path 自体の一部ではありません。 • path は、名前の構成要素の `/' で区切られたリストとして解釈され ます。最後のそのような構成要素のほかのために、ftp は、cd コマン ドと同様に実行されます。最後のパスの構成要素のために、ftp は、 get コマンドと同等に実行されます。 • path 内の `//' から、または、path の始めに、特別の `/' からの結 果である空の名前の構成要素は、ディレクトリ名なしの cd コマンド と同等のです。これは、役に立ちそうもありません。 • パスの構成要素内のあらゆる `%XX' (RFC3986 ごとの) コードは、16 進数の文字コードを表している、XX でデコードされます。このデコー ドは、path が構成要素に分割された後に行われますが、各構成要素が cd または get コマンドと同等に使用される前です。いくつかのしば しば使用されるコードは、(`/' を表す) `%2F' と (`~' を表す) `%7E' です。 上記の解釈は、次の結果があります: • パスは、指定されたユーザまたは `anonymous' (匿名) ユーザのデ フォルトのログインディレクトリに関連しいると解釈されます。/ ディレクトリが必要であるなら、``%2F'' の先導するパスを使用しま す。ユーザのホームディレクトリが必要である (そして、リモート サーバが構文をサポートする) なら、``%7Euser/'' の先導するパスを 使用します。例えば、パスワード `mypass' でユーザ `myname' とし て `localhost' から /etc/motd を取り出すために、 ``ftp://myname:mypass@localhost/%2fetc/motd'' を使用します。 • `/' を使用するところで、そして `%2F' (または `%2f') を使用する ところで、注意深く選択することによって、正確な cd と get コマン ドを制御することができます。例えば、次の URL は、示されたコマン ドと同等に対応しています: ftp://host/dir1/dir2/file ``cd dir1'', ``cd dir2'', ``get file''. ftp://host/%2Fdir1/dir2/file ``cd /dir1'', ``cd dir2'', ``get file''. ftp://host/dir1%2Fdir2/file ``cd dir1/dir2'', ``get file''. ftp://host/%2Fdir1%2Fdir2/file ``cd /dir1/dir2'', ``get file''. ftp://host/dir1%2Fdir2%2Ffile ``get dir1/dir2/file''. ftp://host/%2Fdir1%2Fdir2%2Ffile ``get /dir1/dir2/file''. • 利用者は、cd コマンドと同等に使用される中間的なディレクトリのそ れぞれに対して適切なアクセスパーミッションがなければなければな りません。 http://[user[:password]@]host[:port]/path HTTP URL は、HTTP プロトコルを使用して取り出します。set http_proxy が定義されるなら、それは、HTTP プロキシサーバへの URL として使用さ れます。HTTP 認証が path を取り出すために必要とされ、`user' (とオプ ションで `password') が、URL にあるなら、認証する最初の試みのために それらを使用します。 file:///path ローカルホストで /path からコピーされるローカルな URL。 about:topic topic に関する情報を表示します。ファイルは、この自動取得 (auto fetch) の要素に対して検索されません。サポートしている値は、次の通り です: about:ftp ftp に関する情報。 about:version ftp のバージョン。問題を報告するとき、提供するのに役 に立ちます。 上記に特に断りのない限り、-o output が与えられないなら、ファイルは、path の basename(1) としてカレントディレクトリに格納されます。HTTP リダイレク トが受信されるなら、フェッチは、新しい path に対応して、サーバによって供 給された新しいターゲットの URL を使用して再試行されることに注意してくださ い。明白に -o output を使用することは、予期されないファイル名に書き込むこ とを避けるために、推奨されます。 古典的な形式または FTP URL 形式が、後続する `/' または空の path 構成要素 があるなら、ftp は、サイトに接続し、パスとして与えられたディレクトリに cd し、ユーザをさらなる入力の準備ができている対話型モードのままとします。こ れは、set ftp_proxy が使用されているなら、動作しません。 直接的な HTTP 転送は、HTTP 1.1 を使用します。プロキシされた FTP と HTTP 転送は、HTTP 1.0 を使用します。 -R が与えられるなら、FTP または HTTP プロキシを通さないすべての自動フェッ チは、再開されます。FTP について、これは、get の代わりに、reget を使用す ることによって実装されています。HTTP について、これは、`Range: bytes=' HTTP/1.1 ディレクティブを使用することによって実装されています。 WWW またはプロキシ WWW 認証が必要であるなら、利用者は、認証するためにユー ザ名とパスワードを入力するためにプロンプトが出されます。 URL の IPv6 数値アドレスを指定するとき、利用者は、角括弧のアドレスを囲む 必要があります。例えば: ``ftp://[::1]:21/''。これは、コロンが、ポート番号 のためのセパレータであると同様に、IPv6 数値アドレスを使用するためです。 ファイル転送の中断 ファイル転送を中断するために、端末の割り込みキーを使用します (通常 Ctrl C)。送信する転送は、直ちに停止します。受信する転送は、受信されたあらゆる さらなるデータを破棄して、FTP プロトコルの ABOR コマンドをリモートサーバ に送信することによって停止します。これが達成される速度は、ABOR 処理のため にリモートサーバのサポートに依存します。リモートサーバが ABOR コマンドを サポートしないなら、プロンプトは、リモートサーバが、要求されたファイルを 送信することが完了するまで現れません。 ftp が、ABOR 処理のためのリモートサーバからの応答を待っている間に、端末の 割り込みキーのシーケンスが使用されるなら、接続は、クローズされます。これ は、(このフェーズの間に端末の割り込みを無視される) 伝統的な振る舞いと異な りますが、より役に立つと見なされます。 ファイル名前付け規約 ftp コマンドの引数として指定されたファイルは、次の規則にしたがって処理さ れます。 1. ファイル名 `-' が指定されるなら、(読み込みのための) stdin または (書 き込みのための) stdout が使用されます。 2. ファイル名の最初の文字が `|' であるなら、引数の残りは、シェルコマン ドとして解釈されます。次に、ftp は、供給された引数を付けて popen(3) を使用して、シェルを fork し、stdin から読み込むか、または stdout に 書き込みます。シェルコマンドが空白を含んでいるなら、引数は、クォート されなければなりません。例えば、``"| ls -lt"''。このメカニズムに特に 役に立つ例は、次の通りです: ``dir "" |more'' 3. ``globbing'' が有効であるなら、上記のチェックに失敗し、ローカルファ イル名は、csh(1) で使用される規則に従って展開されます。glob コマンド を参照してください。ftp コマンドが単一のローカルファイル (例えば、 put) を要求するなら、"globbing" 操作によって生成される最初のファイル 名だけが、使用されます。特定されないローカルファイル名がある 4. mget コマンドと get コマンドについて、ローカルファイル名は、case, ntrans または nmap 設定によって変更される、リモートファイル名です。 次に、結果のファイル名は、runique がオンであるなら、変更されます。 5. 特定されないリモートファイル名がある mput コマンドと put コマンドに ついて、リモートファイル名は、ntrans または nmap 設定によって変更さ れる、ローカルファイル名です。次に、結果のファイル名は、sunique がオ ンであるなら、リモートサーバによって変更されます。 ファイル転送パラメータ FTP 仕様は、ファイル転送に影響するかもしれない多くのパラメータを指定して います。type は、(ほとんど PDP-10 と PDP-20 のために) ``ascii'', ``image'' (バイナリ), ``ebcdic'' と ``local byte size'' (ローカルなバイト サイズ) の 1 つです。ftp は、ファイル転送の ascii とイメージタイプに加え て、tenex モード転送のためのローカルなバイトサイズ 8 をサポートします。 ftp は、残っているファイル転送パラメータのためのデフォルト値のみをサポー トしています: mode, form と struct です。 .netrc ファイル .netrc ファイルは、自動ログインプロセスによって使用されるログインと初期設 定情報を含んでいます。それは、-N netrc オプションで上書きされるか、または NETRC 環境変数で指定されないなら、ユーザのホームディレクトリに存在しま す。次のトークンが、解釈されます。それらは、空白、タブまたは改行によって 区切られます: machine name リモートマシン name を識別します。自動ログインプロセスは、ftp コマンド行で、または open コマンド引数として指定されたリモート マシンと一致する machine トークンのために .netrc ファイルを検索 します。いったん照合が行われると、その後に .netrc トークンが処 理され、ファイルの終わりに到達するか、または、別の machine また は default のトークンに遭遇するとき、停止します。 default これは、default があらゆる名前と一致することを除いて、machine name と同じです。ただ 1 つの default のトークンがあり得て、それ は、すべての machine のトークンの後でなければなりません。これ は、通常、次のように使用されます: default login anonymous password user@site したがって、.netrc で指定されないマシンへの 自動的な匿名 (anonymous) の FTP ログインをユーザに与えます。これは、自動ログ インを無効にするために、-n フラグを使用することによって上書きす ることができます。 login name リモートマシンのユーザを識別します。このトークンが存在するな ら、自動ログインプロセスは、指定された name を使用してログイン を開始します。 password string パスワードを供給します。このトークンが存在するなら、自動ログイ ンプロセスは、リモートサーバがログインプロセスの一部としてパス ワードを必要とするなら、指定された文字列を供給します。このトー クンがあらゆるユーザ以外の anonymous のために .netrc に存在する なら、ftp は、.netrc が、ユーザのほかの誰かによって読み込み可能 であるなら、自動ログインプロセスを中断することに注意してくださ い。 account string 追加のアカウントのパスワードを供給します。このトークンが存在す るなら、自動ログインプロセスは、リモートサーバが追加のアカウン トのパスワードを必要とするなら、指定された文字列を供給するか、 または自動ログインプロセスは、それが行わないなら、ACCT コマンド を開始します。 macdef name マクロを定義します。このトークンの機能は、ftp macdef コマンド機 能に似ています。マクロは、指定された名前で定義されます。その内 容は、次の .netrc 行で始まり、空行 (連続的な改行文字) に遭遇す るまで続きます。.netrc ファイルの他のトークンのように、macdef は、それに先行する machine 定義だけに適用できます。複数の machine 定義で macdef エントリを使用することができません。むし ろ、使用されることを目的としている各 machine に続いて、定義され なければなりません。init と名前が付けられたマクロが、定義される なら、それは、自動ログインプロセスの最後のステップとして自動的 に実行されます。例えば、 default macdef init epsv4 off は、空行に続きます。 コマンド行の編集 ftp は、editline(3) ライブラリによって、対話型なコマンド行編集をサポート します。それは、edit コマンドで有効にされ、入力が tty からであるなら、デ フォルトで有効にされます。矢印キーで前の行を取り消し、編集することがで き、他の GNU Emacs スタイルの編集キーが、同様に使用されます。 editline(3) ライブラリは、.editrc ファイルで設定されます - 詳細について は、editrc(5) を参照してください、 特別なキーのバインディングは、(リモートのファイル補完を含んで) 文脈依存の コマンドとファイル名の補完を提供するために、ftp で利用可能です。これを使 用するために、キーを editline(3) コマンド ftp-complete にバインドします。 デフォルトで、これは、TAB キーにバイドされます。 コマンド行プロンプト デフォルトで、ftp は、ユーザに ``ftp> '' のコマンド行のプロンプトを表示し ます。これは、set prompt コマンドで変更することができます。 set rprompt コマンドで (コマンド入力の後の) 画面の右側にプロンプトを表示 することができます。次の書式シーケンスは、与えられた情報によって置き換え られます: %/ 現在のリモートの作業ディレクトリ。 %c[[0]n],%.[[0]n] 現在のリモートの作業ディレクトリの後続する構成要素、または数値 n が与えられるなら、n の後続する構成要素。n が `0' で始まるな ら、スキップされた構成要素の数は、書式 ``/<number>trailing'' (`%c' のための) または ``...trailing'' (`%.' のための) の後続 する (複数の) 構成要素に先行します。 %M リモートホスト名。 %m 最初の `.' までのリモートホスト名。 %n リモートのユーザ名。 %% 単一の `%'。 環境変数 ftp は、次の環境変数を使用します。 FTPANONPASS anonymous (匿名) FTP 転送で送信するパスワード。デフォルト は、```whoami`@'' です。 FTPMODE デフォルトの操作モードを上書きします。サポート値は、次の通 りです: active アクティブモード FTP のみ。 auto パッシブまたはアクティブの自動判定 (これは、デ フォルトです)。 gate gate-ftp モード。 passive パッシブモード FTP のみ。 FTPPROMPT 使用するコマンド行のプロンプト。デフォルトは、``ftp> '' で す。詳細については、「コマンド行プロンプト」を参照してくだ さい。 FTPRPROMPT 使用のためのコマンド行の右側のプロンプト。デフォルトは、 ``'' です。詳細については、「コマンド行プロンプト」を参照 してください。 FTPSERVER gate が有効にされるとき、gate-ftp サーバとして使用するホス ト。 FTPSERVERPORT gate が有効にされるとき、gate-ftp サーバに接続するとき使用 するポート。デフォルトは、``ftpgate/tcp'' の getservbyname() 検索によって返されたポートです。 FTPUSERAGENT HTTP ユーザエージェントのヘッダのために送信される値。 HOME それが存在するなら、.netrc ファイルのデフォルト位置。 NETRC .netrc ファイルの代替の位置。 PAGER ファイルを表示するための様々なコマンドによって使用されま す。空または設定されないなら、デフォルトは、more(1) です。 SHELL デフォルトのシェル。 ftp_proxy FTP URL 要求を行うとき、使用する FTP プロキシの URL (定義 されないなら、標準の FTP プロトコルを使用します)。 プロキシの使用に関するさらなる注については、http_proxy を 参照してください。 http_proxy HTTP URL 要求を行うとき、使用する HTTP プロキシの URL。プ ロキシ認証が要求され、この URL のユーザ名とパスワードがあ るなら、それらは、プロキシへの認証する最初の試みで自動的に 使用されます。 ``unsafe'' URL 文字がユーザ名またはパスワードで要求される なら、(例えば、`@' または `/') RFC3986 `%XX' エンコーディ ングでそれらをエンコードします。 ftp_proxy と http_proxy のユーザ名とパスワードの使用は、 (lynx(1) のような) それを使用する他のプログラムとの互換性 がないことに注意してください。 注: これは、コマンド行のフェッチのためだけ、対話型のセッ ションのために使用されません。 no_proxy プロキシが、使用されないホスト (またはドメイン) の空白また はコンマで区切られたリスト。各エントリは、そのポートへの接 続に一致することを制限する、オプションの後続する ":port" があります。 拡張パッシブモードとファイアウォール いくつかのファイアウォール設定は、ftp が、拡張パッシブモードを使用するこ とができません。利用者が、簡単な ls でさえ、次のようなメッセージを印刷 (表示) した後にハングアップするように思われることが分かるなら、 229 Entering Extended Passive Mode (|||58551|) 利用者は、epsv4 off で、拡張パッシブモードを無効にする必要があります。ど のようにこれを自動的に行うかの例については、上記のセクション「.netrc ファ イル」を参照してください。 関連項目 getservbyname(3), editrc(5), services(5), ftpd(8) 規格 ftp は、次に準拠しようとしています: RFC0959 ファイル転送プロトコル RFC1123 インターネットホストのための要件 - アプリケーションとサ ポート RFC1635 どのようにアノニマス FTP を使用するか RFC2389 ファイル転送プロトコルのためのネゴシエーデョンメカニズム の機能 RFC2428 IPv6 と NAT のための FTP 拡張 RFC2616 ハイパーテキスト転送プロトコル -- HTTP/1.1 RFC2822 インターネットメッセージ形式 RFC3659 FTP の拡張 RFC3986 Uniform Resource Identifier (URI) 歴史 ftp コマンドは、4.2BSD で登場しました。 コマンド行編集、文脈依存のコマンドとファイル補完、動的な進捗バー、ファイ ルと URL の自動フェッチ、更新時刻の保存、転送速度の制限、設定可能なコマン ド行のプロンプトと標準の BSD ftp を越える他の強化のような様々な機能は、 Luke Mewburn <lukem@NetBSD.org> によって NetBSD 1.3 以降のリリースで実装 されました。 IPv6 サポートは、WIDE/KAME プロジェクトによって追加されました (が、オペ レーティングシステムが KAME と同様の方法で IPv6 をサポートするかどうかに 依存して、このプログラムのすべての NetBSD でないバージョンに存在していま せん)。 バグ 多くのコマンドの正しい実行は、リモートサーバによる適切な振る舞いに依存し ます。 4.2BSD の ASCII モードの転送コードのキャリッジリターンの取り扱いのエラー は、訂正されました。この訂正は、ASCII タイプを使用して 4.2BSD サーバとの 往復のバイナリファイルの不正確な転送の結果となります。バイナリイメージの タイプを使用することによってこの問題を避けます。 ftp は、すべての IPv4 のマップされたアドレス (::ffff:10.1.1.1 のような形 式がある IPv6 アドレス) は、AF_INET ソケットによって処理することができる IPv4 の宛先を示すことが仮定されます。しかしながら、特定の IPv6 ネットワー ク設定で、この仮定は、真実ではありません。そのような環境で、IPv4 のマップ されたアドレスは、AF_INET6 ソケットに直接渡されなければなりません。例え ば、利用者のサイトが IPv6-to-IPv4 変換のための SIIT トランスレータを使用 するなら、ftp は、利用者の設定をサポートすることができません。 FreeBSD 11.2 May 10, 2008 FreeBSD 11.2