【 wget 】コマンド――URLを指定してファイルをダウンロードする:Linux基本コマンドTips(24)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「wget」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、指定したURLのファイルをダウンロードするための「wget」コマンドです。
wgetコマンドとは?
「wget」コマンドは“ノンインタラクティブなダウンローダー”です。「wget URL」で指定したURLのファイルをダウンロードします。
wgetコマンドの書式
wget [オプション] URL
wget -r [オプション] URL
(指定したURLからのリンクも含めて保存する(再帰ダウンロード))
※[ ]は省略可能な引数を示しています
wgetの主なオプション
wgetコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-b | --background | バックグラウンドで実行する。経過のメッセージは「-o」オプションで指定したログファイルへ、指定がない場合は「wget-log」に出力する |
-o ファイル名 | --output-file=ファイル名 | 経過のメッセージを全て指定したファイルに出力する |
-a ファイル名 | --append-output=ファイル名 | 「-o」オプションのように経過のメッセージを指定ファイルに出力するが、指定したファイルが既にある場合は上書きではなく追加する。ファイルがない場合は新規作成される |
-d | --debug | 動作内容を詳しく出力する |
-q | --quiet | 経過のメッセージを出力しない |
-v | --verbose | 経過のメッセージを出力する(デフォルト) |
-i ファイル名 | --input-file=ファイル名 | 指定したファイルからダウンロードするURLを読み込む |
-t 回数 | --tries=回数 | リトライ回数を指定する(デフォルトは20回) |
-T 秒数 | --timeout=秒数 | タイムアウトするまでの秒数を指定する(デフォルトは900秒) |
-w 秒数 | --wait=秒数 | リトライの待ち時間を指定する |
-nc | --no-clobber | ファイルを上書きしない |
-c | --continue | 途中までダウンロードされていたら続きをダウンロードする |
-N | --timestamping | ファイルのタイムスタンプをサーバ上のタイムスタンプに変更する |
--no-use-server-timestamps | ファイルのタイムスタンプを変更しない(「wget」で保存した時刻とする) | |
--spider | ファイルをダウンロードせず、URLの存在だけチェックする(“Web spider”として動作する)。例えば、ブックマークをチェックするなら「wget --spider --force-html -i bookmarks.html」のように指定する | |
--user=ユーザー名 | ダウンロードする際の「ユーザー名」を指定する | |
--password=パスワード | ダウンロードする際の「パスワード」を指定する | |
--ask-password | 接続毎にパスワードを入力する(プロンプトが表示される) | |
-p | --page-requisites | ローカル環境で表示するための必要なファイルも含めてダウンロードする |
-r | --recursive | 再帰ダウンロードを行う(URLで指定したファイルからのリンクもダウンロードする。デフォルトは5階層まで:実行例3を参照) |
-l 数 | --level=数 | 指定した回数分リンクをたどる(「-r」オプションは「-l 5」相当) |
-k | --convert-links | ダウンロード後に、ダウンロードファイル内のURLをローカル閲覧用に変換する |
-K | --backup-converted | ファイルを変換した際のバックアップを「.orig」という拡張子を付けて保存する |
-nd | --no-directories | 再帰ダウンロード時にディレクトリを作成しない |
-nH | --no-host-directories | 再帰ダウンロード時にホスト名のディレクトリを作成しない |
--max-redirect=回数 | URLリダイレクトの回数を指定する(デフォルトは20回) | |
-R 拡張子 | --reject 拡張子 | 指定した拡張子のファイルはダウンロードしない(複数ある場合は「-R jpg,png」のように「,」で区切って指定する) |
-A 拡張子 | --accept 拡張子 | 指定した拡張子のみ取得する(複数ある場合は「-A jpg,png」のように「,」で区切って指定する) |
-D リスト | --domains=リスト | ダウンロードするドメインのリスト(デフォルトでは別サイトへのリンクはダウンロードしないが、「-D」で指定したドメインはダウンロードの対象とする。複数ある場合は「,」で区切って指定する) |
--exclude-domains リスト | ダウンロードしないドメインのリスト | |
-np | --no-parent | 親ディレクトリは対象としない |
URLを指定してファイルをダウンロードする
「wget URL」で、URLに指定したファイルをダウンロードします。例えば、「wget http://ftp.gnu.org/gnu/wget/wget-1.18.tar.gz」とすると、「wget-1.18.tar.gz」(wgetコマンドの最新版ソース)をダウンロードできます。
コマンド実行例
wget http://……/download.zip
wget http://ftp.gnu.org/gnu/wget/wget-1.18.tar.gz
HTMLとその表示に必要なファイルをダウンロードする
「wget URL」でHTMLファイルをダウンロードできますが、通常は、HTMLからはスタイルシートや画像などがリンクされています。「-p」オプションを付けると、そのHTMLの表示に使用しているファイル、例えばスタイルシートや画像などのファイルも併せてダウンロードできます。また「-k」オプションでリンクをローカル表示用に変換、「-K」オプションで変換元のファイルも「〜.orig」という名前で保存することができます。
コマンド実行例
wget -pkK http://……/index.html
wget -pkK https://www.gnu.org/software/wget/
リンク先や他のドメインのファイルも含めてダウンロードする
「-r」オプションを付けると、リンク先のファイルも含めてダウンロードすることができます。例えば、本連載の目次は「http://www.atmarkit.co.jp/ait/series/3065/」にありますが、「wget -r http://www.atmarkit.co.jp/ait/series/3065/」で目次からリンクされているページが全てダウンロードできます。
「-r」ではリンク先にもリンクがあればそれもダウンロード、そこにリンクがあれば……と“再帰的”にダウンロードします。デフォルトでは5つまでリンクをたどりますが、「-l」オプションでリンクをたどる回数を指定できます。
また、「http://……/sample01/index.html」を起点に「/sample01/」以下はたどるが、親ディレクトリにはさかのぼらなくてよいという場合は、「-np」オプションを使います。
たくさんのコンテンツがあり、アクセスが多いWebサイトの場合、画像は別のサーバに置かれていることがあります。「-H」オプションを付けると、外部のサーバ(ドメイン)も含めてファイルをダウンロードできます。
ただし、「-H」オプションと「-r」オプションを同時に指定すると、リンク集から他のサイトも取得してしまうなど、範囲が広がりすぎてしまうので、「-D」オプションで読み込むドメインを限定するとよいでしょう。
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.