次: , 前: FTP Options, 上: Invoking


2.10 再帰的な回収オプション

`-r'
`--recursive'
再帰的な回収を開始します.詳細はSee Recursive Download.
`-l depth'
`--level=depth'
再帰的な最大深度の階層をdepthに設定します.(see Recursive Download).デフォルト最大深度は5です.


`--delete-after'
このオプションは,ダウンロードしたに全ての単一ファイルを削除す るようWgetに伝えます.それはプロキシから取得した一般的なページに対し便 利で,例えば以下のようにします.
          wget -r -nd --delete-after http://whatever.com/~popular/page/
     

`-r'オプションは再帰的に回収し,`-nd'はディレクトリを作成しま せん.

`--delete-after'がローカルマシンのファイルを削除することに注意して ください.例えばそれは,リモートのFTPサイトに`DELE'コマンドを発行 しません.また`--delete-after'が指定されたとき,`.orig'ファイ ルが単純に最初の位置に作成されないため,`--convert-links'が無視さ れることにも注意してください.


`-k'
`--convert-links'
ダウンロードが完了した後,ドキュメント内のリンクをローカルでの閲覧に適 したものに変換します.これは目に見えるハイパーリンクのみならず,埋め込 み画像,スタイルシートへのリンク,htmlでない内容へのハイパーリンク 等のように,外部の内容にリンクしているドキュメントの,あらゆる部分にも 影響があります.

それぞれのリンクは二つの方法のうちの一つで変換されます.

このため,ローカルでの閲覧が信頼できるように動作します.リンクされてい るファイルがダウンロードされている場合,リンクはそのローカル名を参照し ます.それがダウンロードされていない場合は,リンクは存在する壊れたリン クではなく,その完全なインターネットアドレスを参照します.前のリンクが 相対リンクに変換されるという事実は,ダウンロードされた階層を別のものに 移動することを確実に可能にします.

ダウンロード後のみ,Wgetはリンクがダウンロードされたことを知ることがで きます.そのため,`-k'が行う仕事は,すべてのダウンロード終りに実行 されます.


`-K'
`--backup-converted'
ファイルの変換時に,オリジナルバージョンのファイルを`.orig'接尾子 を用いてバックアップします.`-N'の動作に効果があります (see HTTP Time-Stamping Internals).
`-m'
`--mirror'
ミラーに適したオプションを開始します.このオプションは回収とタイムスタ ンプを開始し,無限の再帰深度を設定し,ftpディレクトリリストを保ち ます.現在は,`-r -N -l inf --no-remove-listing'と同じです.


`-p'
`--page-requisites'
このオプションで,Wgetは与えられたhtmlページを適切に表示するのに必 要なすべてのファイルをダウンロードします.これは,画像,音声,そして参 照されるスタイルシートのようなものを含みます.

通常は,単一のhtmlページをダウンロードするとき,正しく表示するのに 要求される可能性のある,必要なドキュメントも全くダウンロードされません. `-l'を用いた`-r'オプションの使用は役に立つはずですが,Wgetは 外部とインラインドキュメントを通常区別するので,通常は失われた必要なも のとなる“leaf documents”として残ったままです.

例えば,1.gifを参照する<IMG>タグと,外部ドキュメント 2.htmlを指し示す<A>タグを含む,ドキュメントを考えます. 2.htmlは似ていますが,その画像2.gifでそのリンクは 3.htmlとします.この繰り返しは,任意の,より大きい数字まであると します.

以下のコマンドを実行したとします.

          wget -r -l 2 http://site/1.html
     

すると,1.html1.gif2.html2.gif,そし て3.htmlはダウンロードされます.見てお分かりのように,再帰を停止 する場所を決定するために,Wgetは,1.htmlからのホップの数(を2 ま で) しか数えないので,3.htmlにはそれが必要とする3.gif が ありません.しかし,以下のコマンドを用いたとします.

          wget -r -l 2 -p http://site/1.html
     

それは,上記のすべてのファイルおよび3.htmlが必要とする 3.gifがダウンロードされます.同様に,以下のようにします.

          wget -r -l 1 -p http://site/1.html
     

これで,1.html1.gif2.html,そして2.gif がダウンロードされます.このように考えることもできます.

          wget -r -l 0 -p http://site/1.html
     

これは,1.html1.gifのみをダウンロードすると思われますが, `-l 0'は`-l inf'—すなわち無限再帰—と等価なので,残念なが らそうなりません.単一のhtmlページ(または,コマンドラインや `-i' url入力ファイルで指定された少数のもの)とその(またはそれ らの)必需品をダウンロードするために,単に`-p'と`-l'のみ残して ください.

          wget -p http://site/1.html
     

Wgetは,`-r'が指定されたかのように動作しますが,単一のページとその 必需品のみダウンロードされることに注意してください.外部ドキュメントへ のリンクはだとりません.実際,単一のページとその必需品を(たとえ別のウェ ブサイトに存在していても)ダウンロードするためと,ひとまとまりで正しくロー カルに表示することを保証するために,この作者は,`-p'に加えていくつ かのオプションを使用することを好みます.

          wget -E -H -k -K -p http://site/document
     

このトピックの終りになりますが,外部ドキュメントへのリンクだとWgetが考 える方法は,<A>タグ,<AREA>タグ,または,<LINK REL="stylesheet">以外の<LINK>タグで指定されているあらゆるURLが そうであると考えるという方法です.


`--strict-comments'
htmlのコメントの厳密な字句解析を開始します.デフォルトは,最初に `-->'が見つかったときにコメントを終了します.

仕様書によると,htmlのコメントは,sgml宣言 (declarations)として表現されています.宣言は`<!'で始まり`>' で終る`<!DOCTYPE ...>'のような特別なマークアップで,それには `--'分離子の組の間にコメントを含めてもかまいません.htmlのコ メントは“'空の宣言”で,それはコメントのテキストが無いsgmlの宣言 です.このため,`<!--foo-->'は有効なコメントで,`<!--one-- --two-->'もそうですが,`<!--1--2-->'はそうではありません.

一方,ほとんどのhtml作者は,コメントの理解として`<!--'と `-->'で分離されたテキストとして以上のものはなく,それは同じもので はありません.例えば,`<!------------>'のようなものはダッシュの数 が四の倍数になっている限り有効なコメントとして動作します(!).そうでない 場合,コメントは技術的には,次の`--'がない限り最後まで続き,それは ドキュメントの最後まで行ってしまうかもしれません.このため,多くの有名 なブラウザは,仕様書を無視し,ユーザが期待したように実装されています. コメントは`<!--'と`-->'で分離されています.

バージョン1.9までのWgetはコメントを厳密に解釈していて,結果として多くの 洗練されているブラウザでは表示される,多くのWebページへのリンクが失われ ていて,準拠していないコメントを含むものが不幸にも残っていました.バー ジョン1.9からは,“ネイティブ”のコメント,つまりそれぞれのコメントは最 初に`-->'が見つかると終端されたものとして実装されたクライアントの 仲間入りを成し遂げました.

何らかの理由があって,厳密なコメントとする字句解析を行ないたい場合,こ のオプションを使用して,それを開始して下さい.