[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
デフォルトで,Wgetの呼び出しは非常に簡単です.基本的な構文は以下の通り です.
wget [option]... [URL]... |
Wgetは,コマンドラインで指定された全てのURLを,単純にダウンロード します.URLは,以下で定義されるようなUniform Resource Locatorです.
しかし,Wgetのデフォルトパラメータをいくつか変更したいかもしれません. そうするためには二つの方法が利用可能です.永久的に適切なコマンドを `.wgetrc' (see 節 6. スタートアップファイル)に追加する方法と,コマンドライン で指定する方法です.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
URLは,Uniform Resource Locatorの略語です.uniform resource locatorはインターネットで利用可能なリソースに対するコンパクトな文字列 表示です.WgetはURL構文をRFC1738に従って理解します.これは, 最も広く使用されている形式です(角カッコはオプション部分を意味します).
http://host[:port]/directory/file ftp://host[:port]/directory/file |
ユーザ名とパスワードをURL内部に符号化できます.
ftp://user:password@host/path http://user:password@host/path |
userまたはpasswordのどちらか,または両方とも無くても構いま せん.HTTPユーザ名やパスワードのどちらか一方を省いている場合,認 証は送られません.FTPユーザ名を省いている場合,`anonymous'が 使用されます.FTPパスワードを省いている場合,電子メールのアドレス がデフォルトパスワードとして提供されます.(1)
重要な注意:コマンドラインでパスワードを含むURLを指定し た場合,ユーザ名とパスワードは,ps
を使用することで,システム上 のすべてのユーザがそのまま見えることになります.複数のユーザのシステム では,これは大きなセキュリティ上の問題になります.それを回避するために wget -i -
を使用し,それぞれを別の行にしてC-dで終わりにし たURLをWgetの標準入力に与えて下さい
URLでの安全ではない符号化は`%xy'で可能で,xy
は文字の ASCII値の16進数の表現です.一般的な安全でない文字は,`%' (`%25'として引用されます),`:' (`%3A'として引用されます), そして`@' (`%40'として引用されます)が含まれます.安全でない 文字の包括的なリストは,RFC1738を参照してください.
Wgetは,FTP URLに対するtype
の機能もサポートします.デ フォルトで,FTPドキュメントはバイナリモードで回収(type `i') し,それはダウンロードで変更されないことを意味します.その他の役に立つ モードは`a' (ASCII)モードで,それは異なるオペレーティングシ ステムの間で行の分離文字を変換し,そのためそれはテキストファイルで役に 立ちます.例は以下のようになります.
ftp://host/directory/file;type=a |
歴史的(ヒステリック?)な理由と広範囲で使用されていることから,URL 指定の代替となる変種もサポートされています.
FTP-only syntax (NcFTP
でサポートされました):
host:/dir/file |
HTTP-only syntax (Netscape
で導入されました):
host[:port]/dir/file |
これら二つの代替形式は推奨されず,将来のサポートはやめるかもしれません.
これらの表記の違いを理解できなかったり,その使い方を知らない場合, Lynx
やNetscape
のような好みのブラウザで使用するプレーンな 普通の書式を使用してください.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Wgetは,引数の処理にGNU getoptsを使用しているので,全てのオプションに は短い形式と長い形式があります.長いオプションは覚え易くより便利なので すが,入力に時間がかかります.異なるオプションスタイルを自由に混ぜて使 用したり,コマンドライン引数の後にオプションを指定したりしてもかまいま せん.このため,以下のように書くことができます.
wget -r --tries=10 http://fly.srk.fer.hr/ -o log |
オプションを受け入れる引数とその引数の間のスペースは省略してもかまいま せん.`-o log'の代わりに`-olog'と書くことができます.
引数が不要な複数のオプションを,以下のようにまとめて書き込んでもかまい ません.
wget -drc URL |
これは,以下と完全に等価です.
wget -d -r -c URL |
オプションは引数の後に指定できるので,それらは`--'で終端すること ができます.そのため,以下ではURL `-x'をダウンロードしようと し,`log'に失敗を報告します.
wget -o log -- -x |
カンマで分離されているリストを受け入れるすべてのオプションは,空のリス トの指定がその値をクリアするという規則に従います.これは, `.wgetrc'の設定をクリアにするとき役に立つはずです.例えば, `.wgetrc'がexclude_directories
を`/cgi-bin'に設定する 場合,以下の例では最初にリセットし,除外するものとして`/~nobody' と`/~somebody'を設定します.`.wgetrc' (see 節 6.2 Wgetrcの構文)のリストをクリアにすることも可能です.
wget -X '' -X /~nobody,/~somebody |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
しかし,`--force-html'を指定した場合,ドキュメントは`html'と 見なされます.この状況では相対的なリンクに問題がある可能性もあり,それ は,
をドキュメントに加えたり,コマンドラ インで`--base=url'を指定することで解決できます.
を加えたり, `--base'コマンドラインオプションを使用することで回収できるように なります.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
bind()
します.ADDRESSはホスト名またはIPアドレスとして指 定してもかまいません.このオプションはマシンが複数のIPに連結されている 場合,役に立つはずです.
`-N',`-nc',または`-r'を用いずにWgetを実行するとき,同 じディレクトリにダウンロードされる同じファイルは,オリジナルがそのまま fileのコピーとなり,二番目のコピーは`file.1'と命名さ れます.ファイルが再びダウンロードされた場合は,三番目のコピーは `file.2'となり,以下同様になります.`-nc'が指定された 場合はこの動作が抑制され,Wgetはより新しい`file'のコピーの ダウンロードを拒否します.このため,"no-clobber
"は実際にこの モードの間違った名称です---(数字の接尾子で既に破壊を妨げているので)そ れは破壊を妨げるのではなく,むしろ保存の複数のバージョンを持たないとい うことです.
`-r'を用い,`-N'や`-nc'を用いずにWgetを実行したとき,ファ イルの再度のダウンロードは,古いものを単純に新しいコピーで上書きします. `-nc'を加えた場合はこの動作は妨げられ,オリジナルのバージョン保存 し,サーバ上のあらゆるより新しいコピーを無視します.
`-N'を用い,`-r'を用いるまたは用いないことで,Wgetを実行する とき,ローカルとリモートのファイルのタイムスタンプとサイズに依存して, より新しいファイルのダウンロードを実行するかどうかを決定します (see 節 5. タイムスタンプ).`-nc'は`-N'と同時に指定できません.
`-nc'が指定された場合,`.html'または(反吐がでる)`.htm' の接尾子を持つファイルは,Webから回収されているかのようにローカルディ スクからロードされて解析されることに注意して下さい.
wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z |
現在のディレクトリに`ls-lR.Z'という名前のファイルがある場合,Wget は,それがリモートファイルの最初の位置だと考え,ローカルファイルと同じ 長さのオフセットから回収を続けるようサーバに依頼しみます.
接続が中断されたファイルのダウンロードを再試行するために,現在のWget 呼び出しを行いたいだけの場合は,このオプションを指定する必要がないこと に注意してください.これはデフォルトの動作です.`-c'は,Wgetの今 回の呼び出しの前に開始したダウンロードの再開で,そのローカルファ イルがまだ完全ではないものにのみに効果があります.
`-c'を用いない場合,前の例では,リモートファイルを `ls-lR.Z.1' にダウンロードし,途中で切られた`ls-lR.Z'ファイ ルはそのまま残ります.
`-c'を空でないファイルで使用してWget 1.7を用いて開始すると,サー バが継続ダウンロードをサポートしていないことが判明した場合は,Wgetは最 初からのダウンロードの開始を拒否するので,その影響で既存の内容がだめに なります.本当に最初からダウンロードを開始したい場合は,ファイルを削除 してください.
また,Wget 1.7を用いて開始すると,`-c'をサーバのファイルと同じ大 きさでないファイルで使用する場合,Wgetはファイルのダウンロードを拒否し, そのことを説明メッセージを出力します.サーバのファイルがローカルのもの より小さいときも同じことが生じます---"続けること"に意味がなく,ダウ ンロードを行わないためです.
反対に,`-c'を使用しているときは,ローカルより大きいサーバのファ イルは不完全なダウンロードとみなされ,((リモートの)長さ - (ロー カルの)長さ)
バイトのみダウンロードされ,ローカルファイルの終りにくっ つけられます.この動作は場合によっては望ましくないものです---例えば, データコレクションやログファイルに追加された新しい部分をダウンロードす るために,`wget -c' を使用することが可能です.
しかし,ファイルが,追加されているのではなく,変更されて いてサーバのものより大きい場合,おかしなファイルになります.Wgetには, ローカルのファイルがリモートファイルの前段が本当に有効だということを検 証する方法がありません.`-r'と組合せて`-c'を使用するとき,す べてのファイルが"不完全なダウンロード"の候補と考慮されるので,このこと に特に注意する必要があります.
`-c'を使用してみた場合におかしなファイルを得るもう一つの例は,ロー カルファイルに"transfer interrupted"文字列を挿入する,不完全な HTTPプロキシを使用している場合です.将来は,"rollback"オプショ ンがこの状況を扱うために追加されるかもしれません.
`-c'は,FTPサーバとRange
ヘッダをサポートするHTTP サーバのみで動作することに注意してください.
"バー"の表示がデフォルトで使用されます.それは,回収の状態を表示する ためASCIIのプログレスバー表示(a.k.a"温度計の表示")を描画します. 出力がTTYではない場合,"ドット"のバーがデフォルトで使用されます.
"ドット"表示に切替えるためには`--progress=dot'を使用してくださ い.それは,画面上にドットを出力することで回収を追跡し,それぞれのドッ トはダウンロードされたデータの固定量を表現しています.
ドットでの回収を使用している時,`dot:style'のような形式で スタイルを指定することもできます.異なるスタイルは一つのドットに 異なる意味を割り当てます.default
スタイルでは,それぞれのドット は1Kを表現し,1クラスタに10ドットがあり,一行に50ドットあります. binary
スタイルでは,より"コンピュータ"ライクの方針になってい ます---ドットは8K,クラスタは16ドット,そして一行は48ドットになります (一行が384Kです).mega
スタイルは非常に大きなファイルのダウンロー ドに適しています---それぞれのドットは64Kの回収を表現していて,1クラス タに8ドットあり,それぞれの行には48ドットになります(そのため,それぞれ の行は3M含まれています).
`.wgetrc'のprogress
コマンドで,デフォルトの形式を設定する ことが可能であることに注意して下さい.その設定は,コマンドラインで上書 きされるかもしれません.例外として,出力がTTYではないとき,"ドット" のプログレスバーが"バー"に優先されます.バーの表示を強制したい場合は `--progress=bar:force'を使用してください.
wget --spider --force-html -i bookmarks.html |
この機能には,Wgetを真のウェブスパイダーの能力に近づけるため,非常に多 くの仕事がさらに必要です.
Wgetがリモートホストに接続する,またはそこから読み出すとき,タイムアウ トを調査し,時間が超過した場合は処理を中止します.これで,中途半端な読 み込みや無限接続といった異常な障害を避けることになります.デフォルトで 利用可能なタイムアウトは,読み込みのタイムアウトの900秒だけです.タイ ムアウトを0に設定することで,タイムアウトの調査を利用不可能にします.
何を行っているか分からない場合,タイムアウトに関連するオプションを設定 しないのが最善でしょう.
Wgetは,指定したレート以上の時間をかけないよう,ネットワークの読み込み 後に適切な時間スリープすることで制限を実装していることに注意して下さい. 結局こうすることで,TCPの転送を指定したレートにだいたい落ち着きます. しかし,このバランスを達成するまで時間がかかるかもしれないので,制限さ れたレートが非常に小さなファイルでうまく動作しない場合でも驚かないでく ださい.
m
で後置した分,h
を後置した時間,d
を後置した一日で 指定可能です.
このオプションに大きな値を指定すると,ネットワークや接続先のホストが落 ちた場合,Wgetは再試行する前にネットワークエラーの修復が期待される程度 の妥当な時間待つことができるので役に立ちます.
このオプションは,大域的な`wgetrc'ファイルでデフォルトで開始して いることに注意してください.
有名なコンシュマープラットフォームでの開発に捧げられている出版物の最近 の論文では,大至急これを解析するコードを提供しています.その著者は,自 動的な回収プログラムでDHCPで提供するアドレスを悪意を持って変更するもの をブロックすることを確実にするため,クラスCのアドレスレベルをブロック することを提案しています.
`--random-wait'オプションは,その動作を行なうウェブサイトから多く の無関係なユーザをブロックするような無差別な推奨があることを示唆してい ます.
Wgetでプロキシを使用する際の詳細は,8.1 プロキシ.
クォータは単一ファイルのダウンロードで効果が無いことに注意してください. そのため,`wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz'のように 指定した場合,`ls-lR.gz'全体がダウンロードされます.複数の URLがコマンドラインで指定されたときも,同様なことが生じます.しか し,回収が再帰的なときや入力ファイルからのときにクォータは尊重されます. このため,安全に`wget -Q2m -i sites'と入力ことができます---ダウン ロードはクォータ以上になったとき中止します.
クォータを0や`inf'に設定すると,ダウンロードクォータは無制限にな ります.
しかし,場合によってはホスト名のキャッシュに価値が無いこともあり,それ は,Wgetのようなちょっとしたアプリケーションの実行の間でもそうです.例 えば,HTTPサーバには,刻々と変化する動的なIPアドレスを割り当てを利用し てホスティングしているものもあります.それらのDNSのエントリーは変化す るたびに更新されます.Wgetによるそれぞれのホストからのダウンロードで, IPアドレスの変更が判別したとき,Wgetはダウンロードを再試行しますが, (DNSキャッシュのため)古いアドレスに接続してしまいます.DNSキャッシュを 停止することで,Wgetは接続するたびにDNSルックアップを繰返し,そのため 正しい動的なアドレスを毎回入手します---余分なDNSルックアップのコストは おそらく不要なものなんですけど.
上記の記述を理解していない場合,おそらくこのオプションは不要でしょう.
デフォルトで,通常は出力不可能な制御文字同様,オペレーティングシステム 上のファイル名の一部として有効ではない文字を,Wgetはエスケープします. このオプションは,ネイティブなパーティションではないところにダウンロー ドしたり,制御文字のエスケープを利用不可能にしたいなどの理由で,これら のデフォルトを変更するときに役に立ちます.
モードが"unix"に設定されているとき,Wgetは,文字`/'と0--31の範 囲と128--159の範囲の制御文字をエスケープします.これはUnixに似たOS上で のデフォルトです.
モードが"windows"に設定されているとき,Wgetは,文字`\', `|',`/',`:',`?',`"',`*',`<', `>'と0--31の範囲と128--159の範囲の制御文字をエスケープします.こ れに加え,windowsモードでのWgetは,ローカルファイル名でのホストとポー トの分離に`:'の代わりに`+'を使用し,残りのファイル名のクエリ 部分の分離に`?'の代わりに`@'を使用します.このため,unixモー ドで`www.xemacs.org:4300/search.pl?input=blah'として保存されるURL はwindowsモードでは`www.xemacs.org+4300/search.pl@input=blah'と して保存されます.このモードはWindowsではデフォルトです.
`unix,nocontrol'のように,モードに`,nocontrol'を追加した場合, 制御文字のエスケープも停止します.ファイル名の制限モードとして使用する OSの選択に影響を与えないまま,制御文字のエスケープを停止するために, `--restrict-file-names=nocontrol'を使用することが可能です.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
例えば,`ftp://ftp.xemacs.org/pub/xemacs/'ディレクトリの取得する とします.`-r'で回収した場合,`ftp.xemacs.org/pub/xemacs/'以 下にローカル保存されます.一方,`-nH'オプションは `ftp.xemacs.org/'の部分を削除し,`pub/xemacs'で保存します. これが`--cut-dirs'が役に立つところです.それで,Wgetはリモートディ レクトリコンポーネントのnumber(数)を"見"ないようなります. `--cut-dirs'オプションがどのように動作するかを示す例は以下のよう になります.
No options -> ftp.xemacs.org/pub/xemacs/ -nH -> pub/xemacs/ -nH --cut-dirs=1 -> xemacs/ -nH --cut-dirs=2 -> . --cut-dirs=1 -> ftp.xemacs.org/xemacs/ ... |
ディレクトリ構造を取り除きたいだけの場合,このオプションは`-nd'と `-P'の組合せに似ています.しかし,`-nd'とは異なり, `--cut-dirs'はサブディレクトリを失いません---例えば,`-nH --cut-dirs=1'を用いた場合,`beta/'サブディレクトリは,期待通りに `xemacs/beta'に配置されます.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
この方法で変更されたファイル名は,Wgetはローカルの`X.html' ファイルとリモートのURL `X'と一致するかどうか分からないため (それは,URLが生成する`text/html'形式や `application/xhtml+xml'形式の出力が分からないためです.),再びダ ウンロードするたびにサイトをミラーリングすることに注意してください.こ の再ダウンロードを避けるため,ファイルのオリジナルバージョンが `X.orig'として保存されるように,`-k'と`-K'を使用 する必要があります(see 節 2.9 再帰的な回収オプション).
basic
(安 全でない),またはdigest
認証手法のいずれかを用いて符号化します.
もう一つの方法は,ユーザ名とパスワードをURL自身に書く方法です (see 節 2.1 URLの書式).いずれの手法でも,ps
を実行することで,パ スワードがばれてしまいます.パスワードが見えないようにするため.それら を`.wgetrc'や`.netrc'に保存し,それらのファイルを chmod
を使用して他のユーザから確実に保護してください.パスワード が本当に重要な場合,それらのファイルにも残さないようにして下さい---ファ イルを編集し,Wgetがダウンロードを開始した後で削除して下さい.
Wgetのセキュリティーの問題に関する詳細は,See 節 9.2 セキュリティの考慮.
キャッシュはデフォルトで可能になっています.
Set-Cookie
ヘッダを使用 してクライアントにクッキーを送り,クライアントはそれ以降の要求で同じクッ キーを使用して応答します.クッキーはサーバの所有者が訪問者の追跡を保存 し,サイトがこの情報を交換することを可能にするので,それらをプライバシー の侵害と考える人もいます.デフォルトはクッキーの使用です.しかし,クッ キーの保存はデフォルトではありません.
サイトの内容にアクセスするためにログインすることを要求するサイトをミラー リングする時,通常,このオプションを使用します.ログインのプロセスは, 通常,ウェブサーバがHTTPクッキーを発行し,回収し,証明書を検証す ることで動作します.クッキーは,サイトの一部にアクセスしたときブラウザ が再送信し,個人識別情報を提供します.
サイトのミラーリングで,サイトと通信する時にウェブブラウザが送るものと 同じクッキーをWgetに送るよう要求します.これは,`--load-cookies' で達成されます---単純にWgetに`cookies.txt'ファイルがある場所を示 し,そうすることでブラウザが同じ状況で送るものと同じクッキーを送ります. 異なるブラウザはテキストのクッキーファイルを異なる場所に保存します.
`--load-cookies'が使用不可能な場合,代替方法もあります.ブラウザ が"クッキーマネージャ"をサポートしている場合,ミラーしているサイトに アクセスする時,使用されているクッキーを見るためにそれを使用することが 可能です.名前とクッキー名を書き下ろし,手動でこれらのクッキーを送るよ うWgetに命令し,"公式の"クッキーサポートを回避してください.
wget --cookies=off --header "Cookie: name=value" |
Content-Length
ヘッダを送るものもあり,それではドキュメント全て が回収されないので,Wgetがおかしくなります.Wgetが同じドキュメントを何 度も何度も回収し,そのたびに(通常でない)接続が同じバイト数で閉じている 報告を得る場合,この症状を見付けることが可能です.
このオプションを用いた場合,WgetはContent-Length
ヘッダを---まる で存在しないかのように---無視します.
一つ以上の追加ヘッダを,一度以上`--header'を指定することで定義し てもかまいません.
wget --header='Accept-Charset: iso-8859-2' \ --header='Accept-Language: hr' \ http://fly.srk.fer.hr/ |
ヘッダ値として空の文字列を指定すると,以前ユーザが定義した全てのヘッダ をクリアします.
basic
認証手法で符号化 します.
セキュリティへ考慮は,`--http-passwd'に関連するものによく似ていま す.
HTTPプロトコルは,クライアントがUser-Agent
ヘッダフィールド を用いた自分自身の識別を許可しています.これでWWWソフトウェアの区 別が可能となり,通常のプロトコル違反の追跡目的には十分です.Wgetは通常 `Wget/version'として識別され,versionはWgetの現在のバー ジョンナンバーです.
しかし,サイトによってはUser-Agent
が供給する情報によって出力を 調整するポリシーを課すことが知られています.概念的には,これはそんなに 悪い考えではないのですが,Mozilla
やMicrosoft Internet Explorer
以外のクライアントに情報の提供を拒否するように乱用されてもい ました.このオプションで,Wgetが発行するUser-Agent
を変更できま す.このオプションの使用は,行っていることを本当に知らない場合は思い留 まってください.
--post-data
はstringをデータと して送信し,--post-file
はfileの内容を送信します.それ以外 では,同じように動作します.
Wgetは,POSTするデータの大きさを前もって知っておく必要があることに注意 して下さい.このため,--post-file
の引数は通常のファイルにする必 要があります.FIFOや`/dev/stdin'のようなものを指定すると動作しま せん.HTTP/1.0に起因するこの制限を,回避する方法は全く分かりません. HTTP/1.1ではリクエストの長さを前もって知る必要が無いchunked転送 が導入されましたが,クライアントはHTTP/1.1サーバと通信していることが分 かるまで,chunkedを使用することはできません.また,レスポンスを受信す るまでそれは分からないので,完了するまでリクエストを順次送信する必要が あります--鶏と卵の問題です.
注意:POSTリクエストが完了した後に,Wgetがリダイレクトされる場合,POST データをリダイレクトされたURLに送信しません.これは,POSTを処理するURL が通常のページにリダイレクトを用いて応答するためで(技術的に利用不可能 ですが),それはPOSTを要求したり受け入れたりしません.このオプションの 動作はまだ明確ではありません.うまく動作しなければ変更します.
以下の例は,POSTを使用しているサーバのログをとらせ,要求されている,お そらく認証されたユーザだけがアクセス可能なページをダウンロードを行なう 方法を示します.
# Log in to the server. This can be done only once. wget --save-cookies cookies.txt \ --post-data 'user=foo&password=bar' \ http://server.com/auth.php # Now grab the page or pages we care about. wget --load-cookies cookies.txt \ -p http://server.com/interesting/article.php |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Wgetが既知のファイル名にこのファイルを書いたとしても,ユーザが `.listing'のシンボリックリンクを`/etc/passwd'に作成したり, root
にWgetをそのホームディレクトリで実行するように頼むといった シナリオでも,これはセキュリティホールにはならないことに注意してくださ い.使用するオプションに依存して,Wgetは`.listing'への書き込みを 拒否したり,glob/再帰/タイムスタンプの処理を失敗させたり,シンボリック リンクが削除されたり実際の`.listing'ファイルに置換されたり,リス トが`.listing.number'ファイルに書き込まれたりします.
この状況に問題があっても,root
は決してWgetを信頼できないユーザ のディレクトリで実行しません.ユーザは`index.html'を `/etc/passwd'にリンクしたり,ファイルが上書きされるように root
に`-N'や`-r'を用いてWgetを実行するように頼むよう な,簡単なことしかできません.
wget ftp://gnjilux.srk.fer.hr/*.msg |
デフォルトで,URLがglob文字を含む場合,globはオンです.このオプショ ンで永久的にglobのオン/オフに使用できます.
シェルによる展開から保護するため,URLを引用符で囲む必要があるかも しれません.globでWgetにディレクトリリストを探し,それはシステム指定の ものになっています.これは,現在の仕事がFTPサーバでのみ動作するか らです(そしてそれは,Unix ls
出力をエミュレートします).
しかし,`--retr-symlinks'が指定されている場合,シンボリックリンク は切断され,指定されたファイルが回収されます.この時,このオプションで, Wgetはディレクトリに対するシンボリックリンクを切断して再帰的に回収しま せんが,将来はそうするように拡張されるでしょう.
ファイル(ディレクトリではない)の回収時には,それが再帰されているためで はなく,それがコマンドラインで指定されているために,このオプションの効 果がなくなります.シンボリックリンクは,この場合は常に切断されます.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
wget -r -nd --delete-after http://whatever.com/~popular/page/ |
`-r'オプションは再帰的に回収し,`-nd'はディレクトリを作成し ません.
`--delete-after'がローカルマシンのファイルを削除することに注意し てください.例えばそれは,リモートのFTPサイトに`DELE'コマンドを発 行しません.また`--delete-after'が指定されたとき,`.orig'ファ イルが単純に最初の位置に作成されないため,`--convert-links'が無視 されることにも注意してください.
それぞれのリンクは二つの方法のうちの一つで変換されます.
例:ダウンロードされたファイル`/foo/doc.html'が `/bar/img.gif'にリンクしていて,それもダウンロードされている場合, `doc.html'内のリンクは`../bar/img.gif'を示すものに変更されま す.この種の変換は,ディレクトリの任意の組合せで信頼できるように動作し ます.
例:ダウンロードされたファイル`/foo/doc.html'が, `/bar/img.gif' (または`../bar/img.gif')へリンクしている場合, `doc.html'内のリンクは`http://hostname/bar/img.gif'を 示すものに変更されます.
このため,ローカルでの閲覧が信頼できるように動作します.リンクされてい るファイルがダウンロードされている場合,リンクはそのローカル名を参照し ます.それがダウンロードされていない場合は,リンクは存在する壊れたリン クではなく,その完全なインターネットアドレスを参照します.前のリンクが 相対リンクに変換されるという事実は,ダウンロードされた階層を別のものに 移動することを確実に可能にします.
ダウンロード後のみ,Wgetはリンクがダウンロードされたことを知ることがで きます.そのため,`-k'が行う仕事は,すべてのダウンロード終りに実 行されます.
通常は,単一のHTMLページをダウンロードするとき,正しく表示するの に要求される可能性のある,必要なドキュメントも全くダウンロードされませ ん.`-l'を用いた`-r'オプションの使用は役に立つはずですが, Wgetは外部とインラインドキュメントを通常区別するので,通常は失われた必 要なものとなる"leaf documents"として残ったままです.
例えば,`1.gif'を参照するタグと,外部ドキュメント `2.html'を指し示す
タグを含む,ドキュメントを考えます. `2.html'は似ていますが,その画像`2.gif'でそのリンクは `3.html'とします.この繰り返しは,任意の,より大きい数字まである とします.
以下のコマンドを実行したとします.
wget -r -l 2 http://site/1.html |
すると,`1.html',`1.gif',`2.html',`2.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.html',`1.gif',`2.html',そして`2.gif' がダウンロードされます.このように考えることもできます.
wget -r -l 0 -p http://site/1.html |
これは,`1.html'と`1.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が考 える方法は,タグ,
タグ,または,
以外の
タグで指定されているあらゆるURLが そうであると考えるという方法です.
仕様書によると,HTMLのコメントは,SGMLの宣言 (declarations)として表現されています.宣言は`'で始まり`>' で終る`'のような特別なマークアップで,それには `--'分離子の組の間にコメントを含めてもかまいません.HTMLのコ メントは"'空の宣言"で,それはコメントのテキストが無いSGMLの宣言 です.このため,`'は有効なコメントで,`'もそうですが,`'はそうではありません.
一方,ほとんどのHTML作者は,コメントの理解として`'で分離されたテキストとして以上のものはなく,それは同じもので はありません.例えば,`'のようなものはダッシュの数 が四の倍数になっている限り有効なコメントとして動作します(!).そうでな い場合,コメントは技術的には,次の`--'がない限り最後まで続き,そ れはドキュメントの最後まで行ってしまうかもしれません.このため,多くの 有名なブラウザは,仕様書を無視し,ユーザが期待したように実装されていま す.コメントは`'で分離されています.
バージョン1.9までのWgetはコメントを厳密に解釈していて,結果として多く の洗練されているブラウザでは表示される,多くのWebページへのリンクが失 われていて,準拠していないコメントを含むものが不幸にも残っていました. バージョン1.9からは,"ネイティブ"のコメント,つまりそれぞれのコメン トは最初に`-->'が見つかると終端されたものとして実装されたクライア ントの仲間入りを成し遂げました.
何らかの理由があって,厳密なコメントとする字句解析を行ないたい場合,こ のオプションを使用して,それを開始して下さい.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
以前は,`-G'オプションは,単一のページとその必要物をダウンロード するとき最善の策で,それは以下のようなコマンドラインになりました.
wget -Ga,area -H -k -K -r http://site/document |
しかし,このオプションの作者は,のよ うなタグを用いたページに出会い,`-G'が現実的ではないことを実感し ました.スタイルシートがダウンロードされないため,Wgetに
を無視させるように伝えることができませんでした.現在は,単一のページと その必要物をダウンロードする最善の策は,`--page-requisites'オプショ ンを掲げています.
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |