tnftp — インターネットファイル転送プログラム
構文
tnftp [-46AadefginpRtVv?] [-N netrc] [-o output] [-P port] [-q quittime] [-r retry] [-s srcaddr]
[-T dir,max[,inc]] [-x xfersize] [[user@]host [port]] [[user@]host:[path][/]]
[file:///path] [ftp://[user[:password]@]host[:port]/path[/][;type=type]]
[http://[user[:password]@]host[:port]/path] [https://[user[:password]@]host[:port]/path]
...
tnftp -u url file ...
説明
tnftp は、インターネット標準のファイル転送プロトコルへのユーザーインターフェイスです。このプログラムを使用すると、ユーザーはリモートネットワークサイト間でファイルを転送できます。
最後の 5 つの引数は、FTP または HTTP プロトコルを使用して、または直接コピーすることで、ファイルを現在のディレクトリにフェッチします。これはスクリプトに最適です。詳細については、以下に示す「ファイルの自動フェッチ」を参照してください。
オプションは、コマンドラインまたはコマンドインタープリターで指定できます。
-4 tnftp が IPv4 アドレスのみを使用するように強制します。
-6 tnftp が IPv6 アドレスのみを使用するように強制します。
-A アクティブモードの FTP を強制します。デフォルトでは、tnftp はパッシブモードの FTP を使用し、サーバーがパッシブモードをサポートしていない場合にアクティブモードにフォールバックします。このオプションは、tnftp が常にアクティブ接続を使用するようにします。これは、パッシブモードを適切に実装していない非常に古いサーバーに接続する場合にのみ役立ちます。
-a tnftp が通常のログイン手順をバイパスし、代わりに匿名ログインを使用するようにします。
-d デバッグを有効にします。
-e コマンドライン編集を無効にします。これは、Emacs ange-ftp モードに役立ちます。
-f FTP または HTTP プロキシを介して転送される転送について、キャッシュを強制的に再読み込みします。
-g ファイル名のグロビングを無効にします。
-i 複数のファイル転送中にインタラクティブなプロンプトをオフにします。
-N netrc 代わりに ~/.netrc を使用します。「.netrc ファイル」を参照してください。
-n 初期接続時に、tnftp が自動ログインを試みるのを制限します(自動フェッチ以外の転送の場合)。自動ログインが有効になっている場合、tnftp はユーザーのホームディレクトリにある .netrc ファイル(以下を参照)に、リモートマシンのアカウントに関するエントリがあるかどうかを確認します。エントリが存在しない場合、tnftp はリモートマシンのログイン名(デフォルトはローカルマシンのユーザー ID)を要求し、必要に応じてパスワードとアカウントを要求します。自動フェッチ転送の自動ログインをオーバーライドするには、適切なユーザー名(およびオプションでパスワード)を指定します。
-o output ファイルを自動フェッチするときに、コンテンツを output に保存します。output は、「ファイル名の規則」に従って解析されます。output が '-' または '|' で始まらない場合、最初に指定されたファイルのみが output にフェッチされ、他のすべてのファイルはリモート名の基本名にフェッチされます。
-P port ポート番号を port に設定します。
-p 接続フィルタリングファイアウォールの背後で使用するために、パッシブモードの操作を有効にします。
このオプションは非推奨となり、tnftp は現在、パッシブモードをデフォルトで試行し、サーバーがパッシブ接続をサポートしていない場合はアクティブモードにフォールバックします。
-q quittime 接続が quittime 秒間停止した場合に終了します。
-R すべての非プロキシの自動フェッチを再開します。
-r wait 接続の試行が失敗した場合に、wait 秒間一時停止してから再試行します。
-s srcaddr すべての接続に srcaddr をローカル IP アドレスとして使用します。
-t パケットトレースを有効にします。
-T direction,maximum[,increment]
direction の最大転送速度を maximum バイト/秒に設定し、指定された場合は、増分を increment バイト/秒に設定します。 詳細については、rate を参照してください。
-u url file ...
コマンドライン上のファイルを url にアップロードします。url は、auto-fetch でサポートされている「ftp://」URL のいずれかであり(オプションで、単一ファイルのアップロードの場合はターゲットファイル名)、file はアップロードするローカルファイルです。
-V 冗長出力と進捗状況表示を無効にし、出力がターミナルに送られる場合のデフォルトの有効状態をオーバーライドします。
-V 冗長出力と進捗状況表示を有効にします。 これは、出力がターミナルに送られる場合のデフォルトです(また、tnftp がフォアグラウンドプロセスである場合)。 tnftp がリモートサーバーからのすべての応答を表示し、データ転送統計を報告するように強制します。
-x xfersize ソケットの送信および受信バッファのサイズを xfersize に設定します。 詳細については、xferbuf を参照してください。
-? ヘルプを標準出力に表示して終了します。
tnftp を通信させるクライアントホストは、コマンドラインで指定できます。 これを行うと、tnftp は指定されたホストの FTP サーバーへの接続をすぐに試みます。そうでない場合、tnftp はコマンドインタープリターに入り、ユーザーからの命令を待ちます。 tnftp がユーザーからのコマンドを待機しているときは、「ftp>」というプロンプトがユーザーに表示されます。 以下のコマンドは tnftp で認識されます。
! [command [args]]
ローカルマシンでインタラクティブシェルを起動します。 引数がある場合、最初の引数は直接実行するコマンドとして、残りの引数はそのコマンドの引数として扱われます。
$ macro-name [args]
macdef コマンドで定義されたマクロ macro-name を実行します。 引数は、展開なしでマクロに渡されます。
account [passwd]
ログインが正常に完了した後、リモートシステムによってリソースへのアクセスに必要な追加のパスワードを提供します。 引数が含まれていない場合、ユーザーはエコーなしの入力モードでアカウントのパスワードを求められます。
append local-file [remote-file]
ローカルファイルをリモートマシンのファイルに追加します。 remote-file が指定されていない場合、ローカルファイル名が使用され、ntrans または nmap 設定によって変更された後にリモートファイルの名前が付けられます。 ファイル転送では、現在の設定 (type、format、mode、structure) が使用されます。
ascii ファイル転送タイプをネットワーク ASCII に設定します。これはデフォルトのタイプです。
bell 各ファイル転送コマンドの完了後にベル音を鳴らすように設定します。
binary バイナリイメージ転送をサポートするようにファイル転送タイプを設定します。
bye リモートサーバーとの FTP セッションを終了し、tnftp を終了します。ファイルの終わりに達することでもセッションが終了し、tnftp が終了します。
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 がオフの場合にのみレコード区切り文字と区別できます。
debug [debug-value]
デバッグモードを切り替えます。オプションの debug-value が指定された場合、それがデバッグレベルとして使用されます。デバッグがオンの場合、tnftp はリモートマシンに送信される各コマンドを文字列「-->」を付けて出力します。
delete remote-file
リモートマシンのファイル remote-file を削除します。
dir [remote-path [local-file]]
リモートマシンのディレクトリの内容のリストを表示します。リストには、サーバーが含める選択したシステムに依存する情報が含まれます。たとえば、ほとんどの Unix システムは、コマンド「ls -l」からの出力を生成します。remote-path が指定されていない場合、現在の作業ディレクトリが使用されます。インタラクティブプロンプトがオンの場合、tnftp は、最後の引数が実際に 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
localfile にリストされているファイルを、1 行に 1 ファイル名ずつ取得します。
form format
ファイル転送形式を format に設定します。デフォルト(および唯一サポートされている)形式は「non-print」です。
ftp host [port]
open と同じ。
gate [host [port]]
ゲート FTP モードを切り替えます。これは、TIS FWTK および Gauntlet FTP プロキシを介して接続するために使用されていました。ゲート FTP サーバーが設定されていない場合(ユーザーが明示的に設定するか、FTPSERVER 環境変数から設定した場合)、これは許可されません。host が指定されている場合、ゲート FTP モードが有効になり、ゲート FTP サーバーが host に設定されます。port も指定されている場合、ゲート FTP サーバー上の接続に使用するポートとして使用されます。
get remote-file [local-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](filename:tar.md) アーカイブをバイナリモードで転送することで行えます。
hash [size]
転送される各データブロックに対してハッシュ記号(‘#’)の印刷を切り替えます。データブロックのサイズはデフォルトで 1024 バイトです。size をバイト単位で指定すると、サイズを変更できます。ハッシュを有効にすると、進行状況表示が無効になります。
help [command]
command の意味に関する有益なメッセージを表示します。引数が指定されていない場合、tnftp は既知のコマンドのリストを表示します。
idle [seconds]
リモートサーバー上の非アクティブタイマーを seconds 秒に設定します。seconds が省略された場合、現在の非アクティブタイマーが表示されます。
image
binary と同じ。
lcd [directory]
ローカルマシン上の作業ディレクトリを変更します。ディレクトリが指定されていない場合、ユーザーのホームディレクトリが使用されます。
less file page の同義語。
lpage local-file
set pager オプションで指定されたプログラムを使用して、local-file を表示します。
lpwd ローカルマシンの作業ディレクトリを出力します。
ls [remote-path [local-file]]
dir の同義語。
macdef macro-name
マクロを定義します。後続の行は、マクロ名というマクロとして保存されます。NULL行(ファイル内の連続する改行文字、または端末からのキャリッジリターン)は、マクロ入力モードを終了します。定義できるマクロの数は16個まで、すべての定義されたマクロの合計文字数は4096文字までです。マクロ名は最大8文字までです。マクロは、定義された現在のセッション内(またはセッション外で定義された場合は、次の open コマンドで呼び出されたセッション内)でのみ有効であり、close コマンドが実行されるまで定義されたままになります。マクロを呼び出すには、$ コマンドを使用します(上記を参照)。
マクロプロセッサは、「$」と「\」を特殊文字として解釈します。
「$」の後に数字(または数字の組み合わせ)が続く場合、マクロ呼び出しコマンドラインの対応する引数に置き換えられます。「$」の後に「i」が続く場合、マクロプロセッサは、実行中のマクロをループさせることを示します。最初のパスでは、「$i」はマクロ呼び出しコマンドラインの最初の引数に置き換えられ、2番目のパスでは2番目の引数に置き換えられます。
「\」の後に続く文字は、その文字に置き換えられます。「$」の特殊な処理を回避するには、「\」を使用します。
mdelete [remote-files]
リモートマシン上の remote-files を削除します。
mdir remote-files local-file
dir と同様ですが、複数のリモートファイルを指定できます。対話型プロンプトがオンになっている場合、tnftp は、最後の引数が実際に mdir 出力を受信するターゲットのローカルファイルであることをユーザーに確認するように求めます。
mget remote-files
リモートマシン上の remote-files を展開し、各ファイル名に対して get を実行します。ファイル名展開の詳細については、glob を参照してください。結果のファイル名は、case、ntrans、nmap の設定に従って処理されます。ファイルは、lcd directory コマンドで変更できるローカル作業ディレクトリに転送され、新しいローカルディレクトリは、! mkdir directory コマンドで作成できます。
mkdir directory-name
リモートマシン上にディレクトリを作成します。
mls remote-files local-file
ls と同様ですが、複数のリモートファイルを指定でき、local-file を指定する必要があります。対話型プロンプトがオンになっている場合、tnftp は、最後の引数が実際に mls 出力を受信するターゲットのローカルファイルであることをユーザーに確認するように求めます。
mlst [remote-path]
MLSD を使用して、remote-path の内容(指定されていない場合は現在のディレクトリになるはずです)をマシンで解析可能な形式で表示します。表示形式は、「remopts mlst ...」で変更できます。
mlst [remote-path]
MLST を使用して、remote-path に関する詳細(指定されていない場合は現在のディレクトリになるはずです)をマシンで解析可能な形式で表示します。表示形式は、「remopts mlst ...」で変更できます。
mode mode-name
ファイル転送モードを mode-name に設定します。デフォルト(および唯一サポートされている)モードは ‘stream’ です。
modtime remote-file
リモートマシン上のファイルの最終更新時刻を RFC 2822 形式で表示します。
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]
リモートファイルの修正時刻が現在のシステムのファイルよりも新しい場合にのみ、ファイルを取得します。ファイルが現在のシステムに存在しない場合、リモートファイルは常に新しいと見なされます。それ以外の場合は、このコマンドは 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]
指定されたホストFTPサーバーへの接続を確立します。オプションでポート番号を指定できます。この場合、tnftpは指定されたポートでFTPサーバーに接続しようとします。set auto-loginオプションがオンになっている場合(デフォルト)、tnftpはFTPサーバーに自動的にログインしようとします(以下を参照)。
page file set pagerオプションで指定されたプログラムでファイルを取得して表示します。
passive [auto]
パッシブモードを切り替えます(引数が指定されていない場合)。autoが指定されている場合、FTPMODEが‘auto’に設定されているかのように動作します。パッシブモードがオンになっている場合(デフォルト)、tnftpはすべてのデータ接続に対してPASVコマンドを送信します。PASVコマンドは、リモートサーバーがデータ接続用にポートを開き、そのポートのアドレスを返すように要求します。リモートサーバーはそのポートでリッスンし、クライアントがそれに接続します。より伝統的なPORTコマンドを使用する場合、クライアントはポートでリッスンし、そのアドレスをリモートサーバーに送信し、リモートサーバーがそれに接続します。パッシブモードは、ゲートウェイまたはホストを介してtnftpを使用する場合に役立ちます。これにより、トラフィックの方向性が制御されます。(ただし、FTPサーバーはRFC 1123で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が‘-’であるか、‘|’で始まるコマンドを持つ転送に対して無効になります。「ファイル命名規則」を参照してください。進捗バーを有効にすると、ハッシュは無効になります。
prompt インタラクティブなプロンプトを切り替えます。インタラクティブなプロンプトは、複数のファイル転送中に発生し、ユーザーが選択的にファイルを取得または保存できるようにします。プロンプトが無効になっている場合(デフォルトでは有効)、すべてのmgetまたはmputはすべてのファイルを転送し、すべてのmdeleteはすべてのファイルを削除します。
プロンプトがオンの場合、次のコマンドはプロンプトで使用できます。
a 現在のファイルに対して「はい」と答え、現在のコマンドの残りのファイルに対して「はい」と自動的に答えます。
n 「いいえ」と答え、ファイル転送を行いません。
p 現在のファイルに対して「はい」と答え、プロンプトモードをオフにします(prompt offを指定した場合と同じ)。
q 現在の操作を終了します。
y 「はい」と答え、ファイルを転送します。
? ヘルプメッセージを表示します。
他のすべての応答は、現在のファイルに対して「はい」と答えます。
proxy ftp-command
セカンダリコントロール接続でFTPコマンドを実行します。このコマンドを使用すると、2つのリモートFTPサーバーに同時に接続してファイルを転送できます。最初のproxyコマンドは、セカンダリコントロール接続を確立するためのopenである必要があります。他のFTPコマンドをセカンダリ接続で実行するには、コマンド「proxy ?」を入力します。次のコマンドは、proxyで始まる場合、動作が異なります。openは、自動ログインプロセス中に新しいマクロを定義しません。closeは、既存のマクロ定義を削除しません。getとmgetは、プライマリコントロール接続上のホストから、セカンダリコントロール接続上のホストにファイルを転送します。put、mput、およびappendは、セカンダリコントロール接続上のホストから、プライマリコントロール接続上のホストにファイルを転送します。サードパーティのファイル転送は、セカンダリコントロール接続上のサーバーでFTPプロトコルPASVコマンドがサポートされている必要があります。
put local-file [remote-file]
ローカルファイルをリモートマシンに保存します。remote-fileが指定されていない場合、ローカルファイル名は、ntransまたはnmap設定に従って処理された後、リモートファイル名として使用されます。ファイル転送は、現在のtype、format、mode、およびstructureの設定を使用します。
pwd リモートマシンの現在の作業ディレクトリの名前を表示します。
quit byeの同義語です。
quote [arg ...]
指定された引数は、変更せずにリモートFTPサーバーに送信されます。
rate direction [maximum [increment]]
最大転送レートを最大バイト/秒に調整します。maximumが0の場合、調整を無効にします。
directionは、次のいずれかになります。
all 両方向。
get 受信転送。
put 送信転送。
maximumは、指定されたシグナルを受信するたびに、incrementバイト(デフォルト:1024)ずつ動的に変更できます。
SIGUSR1 maximumにincrementバイトを加算します。
SIGUSR2 最大値をデクリメントし、インクリメントバイトを加算します。結果は正の数でなければなりません。
最大値が指定されていない場合、現在のスロットルレートが表示されます。
注: ASCIIモードでの転送については、レートはまだ実装されていません。
rcvbuf サイズ
ソケットの受信バッファーのサイズをサイズに設定します。
recv リモートファイル [ローカルファイル]
get の同義語です。
reget リモートファイル [ローカルファイル]
reget は get と同様に動作しますが、ローカルファイルが存在し、リモートファイルよりも小さい場合、ローカルファイルはリモートファイルの不完全な転送コピーであると見なされ、転送は失敗したと思われる時点から続行されます。このコマンドは、接続が切断されやすいネットワークで非常に大きなファイルを転送する場合に役立ちます。
remopts コマンド [コマンドオプション]
リモートFTPサーバーで、コマンドのコマンドオプションを設定します(オプションがない場合は、コマンドごとに処理されます)。オプションをサポートすることが知られているリモートFTPコマンドには、MLST(MLSDおよびMLSTで使用)などがあります。
rename [from [to]]
リモートマシン上のファイル from をファイル to にリネームします。
reset リプライキューをクリアします。このコマンドは、リモートFTPサーバーとのコマンド/リプライシーケンスを再同期します。再同期は、リモートサーバーがFTPプロトコルに違反した場合に必要になる場合があります。
restart マーカー
直後の get または put を、指定されたマーカーで再開します。Unixシステムでは、マーカーは通常、ファイル内のバイトオフセットです。
rhelp [コマンド名]
リモートFTPサーバーからヘルプを要求します。コマンド名が指定されている場合は、サーバーにも供給されます。
rmdir ディレクトリ名
リモートマシン上のディレクトリを削除します。
rstatus [リモートファイル]
引数がない場合は、リモートマシンのステータスを表示します。リモートファイルが指定されている場合は、リモートマシン上のリモートファイルのステータスを表示します。
runique ローカルシステムに一意のファイル名を付けてファイルを保存する機能を切り替えます。get または mget コマンドのターゲットローカルファイル名と同じ名前のファイルがすでに存在する場合、`.1` が名前に追加されます。その結果得られる名前が別の既存のファイルと一致する場合は、元の名前に `.2` が追加されます。このプロセスが `.99` まで続くと、エラーメッセージが表示され、転送は行われません。生成された一意のファイル名は報告されます。runique は、シェルコマンドから生成されたローカルファイルには影響しません。デフォルト値はオフです。
send ローカルファイル [リモートファイル]
put の同義語です。
sendport PORTコマンドの使用を切り替えます。デフォルトでは、tnftp はデータ転送ごとに接続を確立する際に PORT コマンドを使用しようとします。PORT コマンドを使用すると、複数のファイル転送を実行する際に遅延を防ぐことができます。PORT コマンドが失敗した場合、tnftp はデフォルトのデータポートを使用します。PORT コマンドの使用が無効になっている場合、データ転送ごとに PORT コマンドを使用しようとはしません。これは、PORT コマンドを無視するが、誤って受け入れられたことを示す特定のFTP実装に役立ちます。
set [option value]
オプションと値を指定しない場合、すべてのオプションとその値を表示します。オプションを値に設定します。現在サポートされているオプションは次のとおりです。
anonpass は、$FTPANONPASS がデフォルトです。
ftp_proxy は、$ftp_proxy がデフォルトです。
http_proxy は、$http_proxy がデフォルトです。
https_proxy は、$https_proxy がデフォルトです。
no_proxy は、$no_proxy がデフォルトです。
pager は、$PAGER がデフォルトです。
prompt は、$FTPPROMPT がデフォルトです。
rprompt は、$FTPRPROMPT がデフォルトです。
sslnoverify は、$FTPSSLNOVERIFY がデフォルトです。
site [arg ...]
指定された引数は、変更なしでリモート FTP サーバーに SITE コマンドとして送信されます。
size remote-file
リモートマシンの remote-file のサイズを返します。
sndbuf size
ソケットの送信バッファーのサイズを size に設定します。
status
tnftp の現在のステータスを表示します。
struct struct-name
ファイル転送構造を struct-name に設定します。デフォルト (および唯一サポートされている) 構造は「file」です。
sunique
リモートマシンに一意のファイル名でファイルを保存するように切り替えます。リモート FTP サーバーは、FTP プロトコル STOU コマンドをサポートしている必要があります。リモートサーバーは一意の名前を報告します。デフォルト値はオフです。
system
リモートマシンで実行されているオペレーティングシステムの種類を表示します。
tenex
TENEX マシンとの通信に必要なファイル転送タイプを設定します。
throttle
rate の別名です。
trace
パケットトレースを切り替えます。
type [type-name]
ファイル転送タイプを type-name に設定します。タイプが指定されていない場合、現在のタイプが表示されます。デフォルトのタイプはネットワーク ASCII です。
umask [newmask]
リモートサーバーでデフォルトの umask を newmask に設定します。newmask が省略された場合、現在の umask が表示されます。
unset option
オプションを解除します。詳細については、set を参照してください。
usage command
コマンドの使い方のメッセージを表示します。
user user-name [password [account]]
リモート FTP サーバーに対して自分自身を識別します。パスワードが指定されていない場合、サーバーが必要とする場合、tnftp はユーザーにプロンプトを表示します (ローカルエコーを無効にします)。アカウントフィールドが指定されていない場合、FTPサーバーが必要とする場合、ユーザーにプロンプトが表示されます。アカウントフィールドが指定されている場合、リモートサーバーがログインに必要としなかった場合、ログインシーケンスが完了した後、アカウントコマンドがリモートサーバーにリレーされます。tnftp が「自動ログイン」を無効にして起動されない限り、このプロセスは FTP サーバーへの初期接続時に自動的に実行されます。
verbose
詳細モードを切り替えます。詳細モードでは、FTP サーバーからのすべての応答がユーザーに表示されます。さらに、詳細モードがオンの場合、ファイル転送が完了すると、転送の効率に関する統計情報が報告されます。デフォルトでは、詳細モードはオンになっています。
xferbuf size
ソケットの送受信バッファーのサイズを size に設定します。
? [command]
help の別名です。
スペースを含むコマンド引数は、引用符「"」で囲むことができます。
設定を切り替えるコマンドには、明示的な on または off 引数を指定して、設定を適切に強制することができます。
バイト数を引数として取るコマンド(例:hash、rate、および xferbuf)は、引数の末尾にオプションのサフィックスを付けて、引数の解釈を変更することができます。サポートされているサフィックスは次のとおりです。 b 変更なし。 (オプション) k キロ;引数を 1024 倍します m メガ;引数を 1048576 倍します g ギガ;引数を 1073741824 倍します
tnftp が転送中に SIGINFO(stty(1) の status 引数参照)または SIGQUIT シグナルを受信すると、現在の転送速度統計が標準エラー出力に、標準の完了メッセージと同じ形式で書き込まれます。
ファイルの自動取得
標準のコマンドに加えて、このバージョンの tnftp は自動取得機能をサポートしています。自動取得を有効にするには、コマンドラインでホスト名/ファイルのリストを渡します。
次の形式は、自動取得要素の有効な構文です。
[user@]host:[path][/]
「クラシック」FTP 形式。
path にグロブ文字が含まれており、グロブが有効になっている場合(glob を参照)、mget path と同等の操作が実行されます。
path のディレクトリコンポーネントにグロブ文字が含まれていない場合、ローカルに path の basename(basename(1) を参照)として現在のディレクトリに保存されます。それ以外の場合は、完全なリモート名がローカルのルートディレクトリに対して相対的にローカル名として使用されます。
ftp://[user[:password]@]host[:port]/path[/][;type=type]
FTP URL。ftp_proxy が定義されていない場合は、FTP プロトコルを使用して取得します。それ以外の場合は、定義された ftp_proxy を使用して HTTP 経由で URL を転送します。ftp_proxy が定義されておらず、user が指定されている場合、ユーザーとしてログインします。この場合、パスワードが指定されている場合はそれを使用し、そうでない場合はユーザーにパスワードを求めます。
‘;type=A’ または ‘;type=I’ のサフィックスが指定されている場合、転送タイプはそれぞれ ASCII またはバイナリで実行されます。デフォルトの転送タイプはバイナリです。
RFC 3986 に準拠するために、tnftp は ‘ftp://’ 自動取得 URL の path 部分を次のように解釈します。
‘/’ が host[:port] の直後に続く場合、それは path の一部ではなく、path の前の区切り記号として解釈されます。
path は ‘/’ で区切られた名前コンポーネントのリストとして解釈されます。最後の名前コンポーネントを除くすべての名前コンポーネントについて、tnftp は cd コマンドと同等の操作を実行します。最後の path コンポーネントについては、tnftp は get コマンドと同等の操作を実行します。
path 内の ‘//’、または path の先頭にある余分な ‘/’ の結果として生じる空の名前コンポーネントは、ディレクトリ名なしの cd コマンドと同等の操作を引き起こします。これはあまり役に立たない可能性があります。
path コンポーネント内の ‘%XX’ コード(RFC 3986 に従って、XX は 16 進数で文字コードを表します)は、path がコンポーネントに分割された後、各コンポーネントが cd または get コマンドと同等の操作で使用される前に、デコードされます。よく使用されるコードには、‘%2F’(‘/’ を表す)および ‘%7E’(‘~’ を表す)があります。
上記の解釈には、次の影響があります。
パスは、指定されたユーザーまたは「anonymous」ユーザーのデフォルトのログインディレクトリに対して相対的に解釈されます。/ ディレクトリが必要な場合は、先頭に「%2F」を使用します。ユーザーのホームディレクトリが必要で(リモートサーバーが構文をサポートしている場合)、先頭に「%7Euser/」を使用します。たとえば、「localhost」から「myname」というユーザー名とパスワード「mypass」を使用して「/etc/motd」を取得するには、「ftp://myname:mypass@localhost/%2fetc/motd」を使用します。
正確な cd コマンドと get コマンドは、「/」と「%2F」(または「%2f」)をどこで使用するかを慎重に選択することで制御できます。たとえば、次の 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.
使用する cd コマンドに相当する中間ディレクトリごとに、適切なアクセス許可が必要です。
http://[user[:password]@]host[:port]/path
HTTP プロトコルを使用して取得される HTTP URL。http_proxy が設定されている場合、HTTP プロキシサーバーへの URL として使用されます。HTTP 認証で path を取得する必要があり、URL に user(およびオプションで password)が含まれている場合、認証の最初の試行に使用します。
https://[user[:password]@]host[:port]/path
HTTPS プロトコルを使用して取得される HTTPS URL。https_proxy が設定されている場合、HTTPS プロキシサーバーへの URL として使用されます。HTTPS 認証で path を取得する必要があり、URL に user(およびオプションで password)が含まれている場合、認証の最初の試行に使用します。現在、証明書の検証は行われていません。
file:///path
ローカル URL。/path からローカルホストにコピーされます。
about:topic
topic に関する情報を表示します。この自動フェッチ要素では、ファイルは取得されません。サポートされている値は次のとおりです。
about:ftp tnftp に関する情報。
about:version tnftp のバージョン。問題報告時に役立ちます。
上記に明記されていない限り、および -o output が指定されていない場合、ファイルは現在のディレクトリに path の basename(1) として保存されます。HTTP リダイレクトが受信された場合、サーバーによって提供された新しいターゲット URL を使用してフェッチが再試行され、対応する新しい path が設定されます。明示的な -o output の使用を推奨します。これにより、予期しないファイル名への書き込みを回避できます。
従来の形式または FTP URL 形式で、末尾に「/」または空のパスコンポーネントがある場合、tnftp はサイトに接続し、パスとして指定されたディレクトリに cd し、ユーザーを対話モードのままにして、後続の入力を待ちます。これは、ftp_proxy が使用されている場合には機能しません。
直接 HTTP 転送は HTTP 1.1 を使用します。プロキシ経由の FTP および HTTP 転送は HTTP 1.0 を使用します。
-R が指定されている場合、FTP または HTTP プロキシを介さないすべての自動フェッチが再開されます。 FTP の場合、これは reget を get の代わりに使うことで実装されます。HTTP の場合、これは「Range: bytes=」HTTP/1.1 ディレクティブを使用することで実装されます。
WWW またはプロキシ WWW 認証が必要な場合は、ユーザー名とパスワードを入力して認証するように求められます。
URL で IPv6 数値アドレスを指定する場合、アドレスを角かっこで囲む必要があります。例: 「ftp://[::1]:21/」。これは、コロンが IPv6 数値アドレスで使用されているだけでなく、ポート番号の区切り文字としても使用されるためです。
ファイル転送の中止
ファイル転送を中止するには、端末割り込みキー(通常は Ctrl-C)を使用します。送信中の転送は直ちに停止されます。受信中の転送は、FTP プロトコル ABOR コマンドをリモートサーバーに送信し、それ以降に受信したデータを破棄することで停止されます。この処理にかかる時間は、リモートサーバーの ABOR 処理のサポート状況によって異なります。リモートサーバーが ABOR コマンドをサポートしていない場合、プロンプトはリモートサーバーが要求されたファイルの送信を完了するまで表示されません。
端末割り込みキーシーケンスが、tnftp が ABOR 処理のリモートサーバーからの応答を待っている間に使用された場合、接続は閉じられます。これは、従来の動作(このフェーズ中に端末割り込みを無視する)とは異なりますが、より便利であると考えられています。
ファイル名規則
tnftp コマンドに引数として指定されたファイルは、次の規則に従って処理されます。
ファイル名に「-」が指定された場合、stdin(読み取り用)または stdout(書き込み用)が使用されます。
ファイル名の最初の文字が「|」の場合、残りの引数はシェルコマンドとして解釈されます。tnftp はシェルをフォークし、popen(3) を引数とともに使用して、stdout(書き込み用)から読み取ります(stdin に書き込みます)。シェルコマンドにスペースが含まれている場合は、引数を引用符で囲む必要があります。例: 「| ls -lt」。このメカニズムの特に便利な例は、「dir "" | more」です。
上記のチェックに合格しなかった場合、グロビングが有効になっていると、ローカルファイル名は csh(1) で使用される規則に従って拡張されます。glob コマンドを参照してください。tnftp コマンドが単一のローカルファイルを予期する場合(たとえば、put)、グロビング操作によって生成された最初のファイル名のみが使用されます。
mget コマンドと、ローカルファイル名が指定されていない get コマンドの場合、ローカルファイル名はリモートファイル名であり、case、ntrans、または nmap の設定によって変更される可能性があります。結果として得られるファイル名は、runique がオンになっている場合、さらに変更される可能性があります。
mput コマンドと、リモートファイル名が指定されていない put コマンドの場合、リモートファイル名はローカルファイル名であり、ntrans または nmap の設定によって変更される可能性があります。結果として得られるファイル名は、リモートサーバーが sunique をオンにしている場合、さらに変更される可能性があります。
ファイル転送パラメータ
FTP仕様は、ファイル転送に影響を与える可能性のある多くのパラメータを指定します。タイプは、「ascii」、「image」(バイナリ)、「ebcdic」、および「ローカルバイトサイズ」(主にPDP-10およびPDP-20用)のいずれかになります。tnftpは、asciiおよびimageタイプのファイル転送、およびtenexモード転送用のローカルバイトサイズ8をサポートします。
tnftpは、残りのファイル転送パラメータ(モード、フォーム、構造)のデフォルト値のみをサポートします。
.netrcファイル
.netrcファイルには、自動ログインプロセスで使用されるログインおよび初期化情報が含まれています。ユーザーのホームディレクトリに配置され、-N netrcオプションでオーバーライドされるか、NETRC環境変数で指定されます。次のトークンが認識されます。これらは、スペース、タブ、または改行で区切ることができます。
machine name
リモートマシンの名前を識別します。自動ログインプロセスは、.netrcファイルに、コマンドラインまたはopenコマンド引数で指定されたリモートマシンに一致するマシン・トークンがあるかどうかを検索します。一致が見つかると、後続の.netrcトークンが処理され、ファイルの末尾に達するか、別のマシンまたはdefaultトークンに遭遇すると停止します。
default
これはmachine nameと同じですが、defaultは任意のnameに一致します。defaultトークンは1つだけ存在し、すべてのマシン・トークンの後に配置する必要があります。通常は次のように使用されます。
default login anonymous password user@site
これにより、.netrcに指定されていないマシンへの自動匿名FTPログインが可能になります。これは、-nフラグを使用して自動ログインを無効にすることでオーバーライドできます。
login name
リモートマシン上のユーザーを識別します。このトークンが存在する場合、自動ログインプロセスは、指定された名前を使用してログインを開始します。
password string
パスワードを提供します。このトークンが存在する場合、自動ログインプロセスは、リモートサーバーがログインプロセスの一部としてパスワードを要求する場合、指定された文字列を提供します。このトークンがanonymous以外のユーザーに対して.netrcファイルに存在する場合、.netrcが他のユーザーによって読み取り可能であると、tnftpは自動ログインプロセスを中止します。
account string
追加のアカウントパスワードを提供します。このトークンが存在する場合、自動ログインプロセスは、リモートサーバーが追加のアカウントパスワードを要求する場合、指定された文字列を提供するか、または、そうでない場合はACCTコマンドを開始します。
macdef name
マクロを定義します。このトークンは、tnftp macdefコマンドが機能するのと同じように機能します。マクロは指定された名前で定義され、その内容は次の.netrc行から始まり、連続する改行によって終わります。.netrcファイル内の他のトークンと同様に、macdefはそれに先行するマシン定義にのみ適用されます。macdefエントリは、複数のマシン定義によって使用することはできません。むしろ、使用する各マシン定義の後に定義する必要があります。initという名前のマクロが定義されている場合、それは自動ログインプロセスの最後のステップとして自動的に実行されます。たとえば、
デフォルト
macdef init
epsv4 off
改行が続く。
コマンドライン編集
tnftpは、editline(3)ライブラリを介して、インタラクティブなコマンドライン編集をサポートしています。これは、editコマンドで有効になり、入力がttyから行われる場合はデフォルトで有効になります。前の行は呼び出して編集でき、その他のGNU Emacsスタイルの編集キーも使用できます。
editline(3)ライブラリは、.editrcファイルで構成されます。詳細については、editrc(5)を参照してください。
tnftpには、コンテキストに依存したコマンドとファイル名の補完(リモートファイル補完を含む)を提供する追加のキーバインディングがあります。これを使用するには、editline(3)コマンドftp-completeにキーをバインドします。デフォルトでは、これはTABキーにバインドされています。
コマンドラインプロンプト
デフォルトでは、tnftpはユーザーに「ftp\> 」というコマンドラインプロンプトを表示します。これは、set promptコマンドで変更できます。
プロンプトは、コマンド入力の後に画面の右側に表示できます。set rpromptコマンドを使用します。
次のフォーマットシーケンスは、指定された情報に置き換えられます。
%/ 現在のリモート作業ディレクトリ。
%c[[0]n], %.[[0]n]
現在のリモート作業ディレクトリの末尾のコンポーネント、または数字nが与えられた場合はn個の末尾のコンポーネント。nが「0」で始まる場合、末尾のコンポーネントの前にスキップされたコンポーネントの数が、「/<number>trailing」(「%c」の場合)または「...trailing」(「%.」の場合)という形式で表示されます。
%M リモートホスト名。
%m ドット「.」で区切られた最初の部分までのリモートホスト名。
%n リモートユーザー名。
%% パーセント文字「%」。
環境
tnftpは、次の環境変数を参照します。
FTPANONPASS 匿名FTP転送で送信するパスワード。デフォルトは「`whoami`@」です。
FTPMODE デフォルトの操作モードを上書きします。サポートされている値は次のとおりです。
active アクティブモードのFTPのみ
auto パッシブまたはアクティブの自動判定(デフォルト)
gate gate-ftpモード
passive パッシブモードのFTPのみ
FTPPROMPT コマンドラインプロンプト。デフォルトは「ftp> 」です。「COMMAND LINE PROMPT」を参照してください。
FTPRPROMPT コマンドラインの右側プロンプト。デフォルトは空の文字列です。「COMMAND LINE PROMPT」を参照してください。
FTPSERVER gateが有効になっている場合のgate-ftpサーバーとして使用するホスト。
FTPSERVERPORT gateが有効になっている場合にgate-ftpサーバーに接続するときに使用するポート。デフォルトは、getservbyname(3)による「ftpgate/tcp」のルックアップによって返されるポートです。
FTPUSERAGENT HTTP User-Agentヘッダーで送信する値。
FTPSSLNOVERIFY
1に設定すると、SSL証明書を検証しません。
HOME .netrcファイルが存在する場合のデフォルトの場所。
NETRC .netrc ファイルの代替場所。
PAGER 各種コマンドで使用され、ファイルを表示します。空または設定されていない場合は、more(1) をデフォルトとします。
SHELL デフォルトのシェル。
ftp_proxy FTP URL リクエストを行う際に使用する FTP プロキシの URL(定義されていない場合は、標準の FTP プロトコルを使用します)。
http_proxy を参照して、プロキシの使用に関する追加情報を確認してください。
http_proxy HTTP URL リクエストを行う際に使用する HTTP プロキシの URL。プロキシ認証が必要で、この URL にユーザー名とパスワードが含まれている場合、プロキシへの最初の認証試行で自動的に使用されます。
URL に「安全でない」文字(たとえば「@」または「/」)が含まれている場合は、RFC 3986 の「%XX」エンコードを使用してエンコードします。
ftp_proxy および http_proxy にユーザー名とパスワードを使用することは、それを使用する他のプログラム(lynx(1) など)と互換性がない場合があります。
注: これは対話的なセッションには使用されず、コマンドラインからのフェッチにのみ使用されます。
https_proxy HTTPS URL リクエストを行う際に使用する HTTPS プロキシの URL。
http_proxy を参照して、プロキシの使用に関する追加情報を確認してください。
no_proxy プロキシを使用しないホスト(またはドメイン)の、スペースまたはカンマで区切られたリスト。各エントリには、オプションで末尾に「:port」を追加して、そのポートへの接続のみにマッチングを制限できます。
拡張パッシブモードとファイアウォール
一部のファイアウォール構成では、tnftp が拡張パッシブモードを使用できません。単純な ls でさえ、次のようなメッセージを表示した後にハングアップするように見える場合は、
229Entering Extended Passive Mode (|||58551|)
epsv4 off で拡張パッシブモードを無効にする必要があります。「.netrc ファイル」のセクションを参照して、これを自動化する方法の例を確認してください。
関連項目
getservbyname(3), editrc(5), services(5), ftpd(8)
標準
tnftp は、次の標準に準拠しようとします。
RFC 959 ファイル転送プロトコル
RFC 1123 インターネットホストの要件 - アプリケーションとサポート
RFC 1635 匿名 FTP の使用方法
RFC 2389 ファイル転送プロトコルの機能ネゴシエーションメカニズム
RFC 2428 IPv6 および NAT 用の FTP 拡張
RFC 2616 ハイパーテキスト転送プロトコル - HTTP/1.1
RFC 2822 インターネットメッセージ形式
RFC 3659 FTP への拡張
RFC 3986 Uniform Resource Identifier (URI)
歴史
tnftp コマンドは 4.2BSD に登場しました。
コマンドライン編集、コンテキストに依存したコマンドおよびファイル補完、動的進捗バー、ファイルの自動フェッチと URL、変更時間の保持、転送速度のスロットリング、構成可能なコマンドラインプロンプト、および標準の BSD tnftp よりも優れたその他の機能は、NetBSD 1.3 およびそれ以降のリリースで Luke Mewburn ⟨_\⟩ によって実装されました。
IPv6 サポートは WIDE/KAME プロジェクトによって追加されました(ただし、このプログラムのすべての NetBSD 以外のバージョンに存在するとは限りません。これは、オペレーティングシステムが KAME と同様の方法で IPv6 をサポートしているかどうかによって異なります)。
バグ
多くのコマンドの正しい実行は、リモートサーバーの適切な動作に依存します。
4.2BSD ASCIIモード転送コードにおけるキャリッジリターンの処理に関するエラーが修正されました。この修正により、ASCIIタイプを使用して4.2BSDサーバーとの間でバイナリファイルを転送する場合、転送が正しく行われない場合があります。この問題を回避するには、バイナリイメージタイプを使用してください。
tnftpは、すべてのIPv4マッピングアドレス(::ffff:10.1.1.1のような形式のIPv6アドレス)が、AF_INETソケットで処理できるIPv4宛先であることを前提としています。ただし、特定のIPv6ネットワーク構成では、この前提が当てはまらない場合があります。このような環境では、IPv4マッピングアドレスをAF_INET6ソケットに直接渡す必要があります。たとえば、サイトがIPv6からIPv4への変換にSIITトランスレーターを使用している場合、tnftpはその構成をサポートできません。