FETCH(1)

名称
fetch - URL (Uniform Resource Locator) 形式でのファイルの取得

書式
fetch [-146AFMPRUadlmnpqrsv] [-B bytes] [-S bytes] [-T seconds] [-N file] [-o file] [-w seconds] [-h host] [-c dir] [-f file] [URL ...]

解説
fetch ユーティリティは fetch(3) ライブラリへのコマンド行インタフェースを提供します。 目的は、コマンド行の URL (複数可) に示されるファイル (複数可) を取得することです。

以下のオプションが使用可能です。

-1  最初にファイルの取得に成功したときに、終了値 0 を返して停止します。

-4  fetch が IPv4 アドレスのみを使用することを強制します。

-6  fetch が IPv6 アドレスのみを使用することを強制します。

-A  ``一時的な'' (302) リダイレクトを自動的には追跡しません。 要求したオブジェクトが存在しない場合に、 発見できないというエラーではなくリダイレクトを返すという、 壊れたウェブサイトが存在します。

-a  ソフト上での失敗の場合に自動的に転送を再試行します。

-B bytes
    読み込みバッファの大きさをバイト単位で指定します。 デフォルトは 4096 バイトです。 バッファの大きさを小さくしようとしても、黙って無視されます。 実際に実行された読み込み回数は、冗長レベル 2 以上で報告されます ( -v フラグを参照してください)。

-c dir
    遠隔ホストの dir ディレクトリのファイルを取得します。 本オプションは、価値が低下しており、後方互換性のためだけに提供されています。

-d  プロキシが設定されていても、直接接続します。

-F  -r フラグと組み合わせると、 ローカルファイルとリモートファイルの修正時刻が異なったとしても、 強制的に再開します。 -R を暗黙的に指定します。

-f file
    遠隔ホストの file という名前のファイルを取得します。 本オプションは、価値が低下しており、後方互換性のためだけに提供されています。

-h host
    ホスト名が host にあるファイルを取得します。 本オプションは、価値が低下しており、後方互換性のためだけに提供されています。

-l  目標が、ファイル形式の URL の場合、目標を複製しようとするのではなく、 リンクを作成します。

-M

-m  ミラーモード: ローカルホストにファイルが既に存在し、サイズと 変更時間がリモートファイル同じである場合、転送は行われません。 -m と -r のフラグは、あいいれないことに注意してください。

-N file
    ~/.netrc の代りに file を使用し、FTP サイト用のログイン名とパスワードを見付けます。 ファイルの書式については ftp(1) を参照してください。 この機能は実験的です。

-n  転送されるファイルの変更時間を保存しません。

-o file
    出力ファイル名を file にします。 デフォルトでは、``パス名'' が指定された URI から取り出され、その ベースネームが出力ファイルの名前として使われます。 file 引数として ‘-’ を与えると、結果は標準出力に出力されます。 file 引数がディレクトリである場合、取得したファイルはそのディレクトリに 置かれます。 ファイル名はデフォルトの動作の場合と同じように 選択されます。

-P

-p  FTP プロトコルをパッシブモードで使います。 これは、入力接続をブロックするファイアウォール (firewall) の背後に いる場合に有用です。 FTP URL を取得するときに fetch がハングするように見える場合に使用してみてください。

-q  沈黙モード。

-R  出力ファイルは大事にされ、どんな状況下でもファイルは消去されません。 それは、転送が失敗もしくは不完全であった時でさえ、あてはまります。

-r  以前に中断された転送を再開します。 -m と -r のフラグは、あいいれないことに注意してください。

-S bytes
    サーバが報告するファイルサイズが、指定値に合致することを要求します。 合致しない場合、メッセージが表示され、ファイルは取得されません。 サーバがファイルサイズの報告をサポートしていない場合、 本オプションは無視され、無条件にファイルが取得されます。

-s  各要求ファイルごとに、取得せずに、バイト数単位の大きさを表示します。

-T seconds
    タイムアウト時間を seconds 秒に設定します。 FTP での転送に対しては FTP_TIMEOUT 環境変数が、HTTP での転送に関しては HTTP_TIMEOUT 環境変数が、設定されていた場合は、それを上書きします。

-U  パッシブな FTP を使用しているとき、データ接続用に低位 (デフォルト) ポート を割り当てます。 どのポート範囲が対応するかの指定方法の詳細については、 ip(4) を参照してください。

-v  冗長レベルを増やします。

-w seconds
    -a が指定された場合、次のリトライの前に指定した秒数だけ待ちます。

fetch が SIGINFO シグナルを受け取ると ( stty(1) への status 引数を参照して下さい)、 現在の転送レートの統計情報が、 標準の完了メッセージと同じ書式で 標準エラー出力に書き込まれます。

診断
fetch コマンドは、成功時には 0 を返し、失敗時には 1 を返します。 コマンド行上に複数の URL を指定した場合、 fetch は、それぞれを順番に取得しようとし、 すべての取得に成功した場合のみに 0 を返します。

環境変数

FTP_TIMEOUT
    FTP 接続を中断するまでの最大時間を秒で指定します。

HTTP_TIMEOUT
    HTTP 接続を中断するまでの最大時間を秒で指定します。

fetch(3) ライブラリの文書に記述されている環境変数は、すべてサポートされています。 これらの環境変数の多くは、 fetch を正しく操作するために非常に重要なものです。 一緒に fetch(3) も読む事を強くお勧めします。

関連項目
fetch(3)

歴史
fetch コマンドは FreeBSD 2.1.5 から導入されました。 本実装が最初に登場したのは FreeBSD 4.1 です。

作者
-nosplit fetch のオリジナル実装は Jean-Marc Zucconi <jmz@FreeBSD.org> が行いました。 FreeBSD 2.2 のために、拡張を行ったのは Garrett Wollman <wollman@FreeBSD.org> であり、後に fetch(3) を使用するように Dag-Erling Smørgrav <des@FreeBSD.org> が完全に書き直しました。

注
-b および -t のオプションは、すでにサポートされておらず、警告を表示します。 これらのオプションは、他の OS のバグの回避策であって、 本実装ではバグを引き起こしません。

-h, -c, -f オプションの使用と、コマンド行上の URL 指定は、同時にはできません。