【 wget 】コマンド――URLを指定してファイルをダウンロードするLinux基本コマンドTips(24)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「wget」コマンドです。

» 2016年06月20日 05時00分 公開
[西村めぐみ@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、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.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。