curlでファイルをダウンロードする

curlの-oと-Oフラグを使ったファイルダウンロード方法を解説。中断されたダウンロードの再開、帯域幅制限、プログレスバー表示、ファイル整合性の検証方法を学びましょう。

General

詳細な説明

curlでファイルをダウンロードする

curlはWebからファイルをダウンロードする際に頻繁に使用されます。レジューム可能なダウンロード、帯域幅制限、プログレス表示、保護されたリソースへの認証をサポートしています。

基本的なダウンロード

-o でカスタムファイル名で保存します:

curl -o myfile.zip https://example.com/releases/v1.0.zip

-O でリモートのファイル名のまま保存します:

curl -O https://example.com/releases/v1.0.zip

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

curl -O https://example.com/file1.zip -O https://example.com/file2.zip

または波括弧展開を使います:

curl -O "https://example.com/files/data-{01,02,03,04,05}.csv"

中断されたダウンロードの再開

-C - を使って、前回のダウンロードが中断した地点から自動的に再開します:

curl -C - -O https://example.com/large-file.iso

-C - フラグは、curlに正しい再開オフセットを自動的に判断するよう指示します。

帯域幅制限

--limit-rate でダウンロード速度を制限します:

curl --limit-rate 1M -O https://example.com/large-file.iso

サフィックス: K(キロバイト)、M(メガバイト)、G(ギガバイト)/秒をサポートします。

プログレスバー

デフォルトの統計表示をシンプルなプログレスバーに置き換えます:

curl -# -O https://example.com/file.zip

またはスクリプト用にすべての出力を抑制します:

curl -s -O https://example.com/file.zip

条件付きダウンロード

ローカルコピーよりリモートファイルが新しい場合のみダウンロードします:

curl -z localfile.zip -O https://example.com/file.zip

ダウンロードの整合性検証

curlとチェックサム検証を組み合わせます:

curl -sO https://example.com/file.tar.gz
curl -s https://example.com/file.tar.gz.sha256 | sha256sum -c -

ダウンロード時のリダイレクト追跡

多くのダウンロードURL(GitHubリリースなど)はリダイレクトします。必ず -L を使いましょう:

curl -LO https://github.com/user/repo/releases/latest/download/app.tar.gz

スクリプトでのベストプラクティス

curl -fsSL --retry 3 --connect-timeout 10 -o app.tar.gz \
  https://example.com/app.tar.gz

この組み合わせは、リトライ付きでサイレントにダウンロードし、HTTPエラーで失敗し、リダイレクトを追跡します。

ユースケース

システム管理者がデプロイスクリプトを作成する際に、中断された転送の再開をサポートしながら、サーバーからリリースアーティファクトを確実にダウンロードする必要がある場合に使用します。

Try It — Curl to Code Converter

フルツールを開く