はじめに

こんにちは!今回はwgetコマンドについて解説します。

wgetは、インターネットからファイルをダウンロードするコマンドです。ブラウザなしで、コマンドラインからURLを指定するだけでファイルが取得できます。スクリプトの自動化や、大容量ファイルのダウンロードに最適。サーバー管理やデータ収集の現場で毎日使われているコマンドですね。

「コマンドラインのダウンロード機」って感じです。

wgetコマンドとは

wgetは、Webからファイルをダウンロードするためのコマンドラインツールです。“world wide web” + “get"で"wget"ですね。

ブラウザでは面倒なリモートファイルの取得も、wgetなら簡単。スクリプトに組み込めるので、自動ダウンロードやバッチ処理に向いています。大きなファイルでも、中断したら続きからダウンロード再開できるし、複数のURLを一度にダウンロードすることも可能です。

基本構文

1
wget [オプション] URL

URLを指定するだけでダウンロード開始。複数のURLを指定することもできます。

主なオプション

オプション 説明
-O ダウンロードファイルの保存名を指定
-o ログファイルに出力
-q 出力を抑制(quiet)
-v 詳細表示(verbose)
-c 中断したダウンロードを続行
-b バックグラウンドで実行
-i ファイル ファイルから複数URLを読み込み
-P ディレクトリ ダウンロード先ディレクトリを指定
-r 再帰的にダウンロード(Webサイト全体など)
--limit-rate ダウンロード速度を制限
-U ユーザーエージェントを指定
--timeout タイムアウト時間を指定

使用例

例1: 基本的なダウンロード

1
wget https://example.com/file.tar.gz

実行結果:

1
2
3
4
5
6
7
8
--2026-01-03 12:35:00--  https://example.com/file.tar.gz
Resolving example.com... 93.184.216.34
Connecting to example.com [93.184.216.34]:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1234567 (1.2M)
Saving to: 'file.tar.gz'

file.tar.gz     100%[=========>] 1.20M  2.45MB/s    in 0.5s

URLを指定するだけで、ファイルがfile.tar.gzという名前でダウンロードされます。

例2: ファイル名を指定してダウンロード

1
wget -O myfile.tar.gz https://example.com/file.tar.gz

実行結果:

1
2
3
4
--2026-01-03 12:35:00--  https://example.com/file.tar.gz
Saving to: 'myfile.tar.gz'

myfile.tar.gz   100%[=========>] 1.20M  2.45MB/s    in 0.5s

-Oオプションで保存ファイル名を指定できます。

例3: 中断したダウンロードを続行

1
wget -c https://example.com/large_file.iso

実行結果:

1
2
3
4
5
6
7
8
--2026-01-03 12:35:00--  https://example.com/large_file.iso
Resolving example.com... 93.184.216.34
Connecting to example.com [93.184.216.34]:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 5000000000 (4.7G), 2500000000 (2.3G) remaining
Saving to: 'large_file.iso'

large_file.iso  50%[=====>    ] 2.35G  5.23MB/s    in 7m

大きなファイルが途中で止まっても、-cオプションで続きからダウンロードを再開。

例4: ダウンロード先を指定

1
wget -P /tmp/ https://example.com/document.pdf

実行結果:

1
2
3
4
--2026-01-03 12:35:00--  https://example.com/document.pdf
Saving to: '/tmp/document.pdf'

document.pdf    100%[=========>] 856KB   2.45MB/s    in 0.3s

-Pオプションで保存先ディレクトリを指定。

例5: 複数URLをファイルから読み込み

1
2
3
4
5
6
cat urls.txt
https://example.com/file1.zip
https://example.com/file2.zip
https://example.com/file3.zip

wget -i urls.txt

実行結果:

1
2
3
4
5
6
7
8
--2026-01-03 12:35:00--  https://example.com/file1.zip
file1.zip       100%[=========>] 512KB   2.45MB/s    in 0.2s

--2026-01-03 12:35:01--  https://example.com/file2.zip
file2.zip       100%[=========>] 768KB   2.45MB/s    in 0.3s

--2026-01-03 12:35:02--  https://example.com/file3.zip
file3.zip       100%[=========>] 1.0MB   2.45MB/s    in 0.4s

-iオプションでテキストファイルから複数URLを読み込んでダウンロード。

例6: バックグラウンドでダウンロード

1
wget -b https://example.com/large_file.tar.gz

実行結果:

1
2
Continuing in background, pid 12345.
Output will be written to 'wget-log'.

-bオプションでバックグラウンド実行。ターミナルを閉じても続行します。

例7: ダウンロード速度を制限

1
wget --limit-rate=500k https://example.com/file.tar.gz

実行結果:

1
2
3
4
--2026-01-03 12:35:00--  https://example.com/file.tar.gz
Saving to: 'file.tar.gz'

file.tar.gz     10%[>         ] 120KB   500KB/s    in 15s

ネットワーク負荷を軽減するため、ダウンロード速度を500KB/sに制限。

例8: 出力を抑制して実行

1
wget -q https://example.com/file.tar.gz

実行結果:

1
(何も表示されない)

-qオプションで出力を抑制。スクリプトでの使用に向いています。

例9: Webサイト全体をダウンロード

1
wget -r -P /tmp/mirror/ https://example.com/

実行結果:

1
2
3
4
--2026-01-03 12:35:00--  https://example.com/
Resolving example.com... 93.184.216.34
Connecting to example.com [93.184.216.34]:443... connected.
(...複数のファイルがダウンロードされる...)

-rで再帰的にダウンロード。Webサイト全体をミラーリング。

例10: ユーザーエージェント指定

1
wget -U "Mozilla/5.0" https://example.com/file.txt

実行結果:

1
2
3
--2026-01-03 12:35:00--  https://example.com/file.txt
User-Agent: Mozilla/5.0
Saving to: 'file.txt'

ブラウザのユーザーエージェントを偽装。アクセス拒否される場合の対策。

Tips・注意点

ダウンロード完了の確認

1
2
wget -O file.tar.gz https://example.com/file.tar.gz
echo "ダウンロード完了:$?"

終了コードが0なら成功。スクリプトで活用できます。

タイムアウト設定は重要

1
wget --timeout=10 https://slow-server.example.com/file.tar.gz

反応の遅いサーバーのために、タイムアウトを設定するとスクリプトが無限待機しません。

SSL証明書エラーの対処

1
wget --no-check-certificate https://example.com/file.tar.gz

自己署名証明書で接続できない場合の応急処置。本来は推奨されません。

実践的な使い方

定期的なファイル更新スクリプト

1
2
3
4
5
#!/bin/bash
URL="https://example.com/dataset.csv"
DEST="/data/dataset.csv"

wget -q -O "$DEST" "$URL" && echo "Update successful" || echo "Download failed"

毎日実行するcron。ファイルが更新されていれば、最新版をダウンロード。

複数ファイルの一括ダウンロード

1
2
3
for i in {1..10}; do
  wget -q -P /downloads/ "https://example.com/file_$i.zip"
done

複数のファイルを一括ダウンロード。ループで番号を変えて自動化。

Webサイトのバックアップ

1
wget -r -P /backup/website_$(date +%Y%m%d) https://example.com/

日付付きディレクトリにWebサイト全体をバックアップ。

まとめ

wgetコマンドのポイント:

  • インターネットからファイルをダウンロードする基本ツール
  • -O: 保存ファイル名を指定
  • -c: 中断したダウンロードを続行(超便利!)
  • -b: バックグラウンド実行
  • -i: 複数URLをファイルから読み込み
  • -P: ダウンロード先ディレクトリ指定
  • -r: Webサイト全体をミラーリング
  • よく使う組み合わせ: wget -O, wget -c, wget -q

手動でのファイル取得から自動化スクリプトまで、幅広く活用できるコマンドです。覚えておいて損はありませんよ!