インターネットからファイルをダウンロードする

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、2つの一般的なコマンドラインツール:curlwget を使ってインターネットからファイルをダウンロードする方法を学びます。これらのツールは、Webサーバーからファイルとデータを取得するために欠かせないものであり、Linuxユーザーや開発者にとって非常に重要なスキルです。

curl は、さまざまなプロトコルからファイルをダウンロードし、HTTP要求を実行できる多用途のツールです。wget は、主にWebサーバーからファイルをダウンロードするためのよりシンプルなツールです。この実験が終わるまでに、両方のツールを使ってファイルをダウンロードし、基本的なHTTP要求を行えるようになります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/mv("File Moving/Renaming") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") linux/PackagesandSoftwaresGroup -.-> linux/wget("Non-interactive Downloading") subgraph Lab Skills linux/ls -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} linux/mv -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} linux/cat -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} linux/less -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} linux/cd -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} linux/mkdir -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} linux/curl -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} linux/wget -.-> lab-387333{{"インターネットからファイルをダウンロードする"}} end

curl を使ったファイルのダウンロード

まずは、curl を使ってウェブサイトから簡単なHTMLファイルをダウンロードしてみましょう。

  1. ターミナルを開きます。

  2. プロジェクトディレクトリに移動します。ターミナルで次のコマンドを入力します:

cd /home/labex/project

このコマンドは、現在のディレクトリを /home/labex/project に変更します。cd コマンドは「ディレクトリを変更する」という意味です。

  1. 次に、curl を使ってウェブページをダウンロードしましょう。次のコマンドを入力します:
curl http://example.com -o example.html

このコマンドを分解してみましょう:

  • curl は、私たちが使っているプログラムの名前です。
  • http://example.com は、私たちがダウンロードしているウェブページのURLです。
  • -o example.html は、curl にダウンロードしたコンテンツを example.html という名前のファイルに保存するように指示します。-o オプションは「出力」を意味します。
  1. コマンドを実行した後、curl はコンテンツをダウンロードし、現在のディレクトリに example.html として保存します。ファイルがダウンロードされたことを確認するには、ディレクトリの内容を一覧表示できます:
ls -l example.html

ls コマンドは、ファイルとディレクトリを一覧表示します。-l オプションは、詳細(長い)一覧表示を行います。出力には example.html が表示され、そのサイズや最終更新日に関する情報も表示されます。

ダウンロードしたファイルを調べる

ファイルをダウンロードしたので、その内容を見てみましょう。

  1. ファイルの内容を表示するには、cat コマンドを使います。次のように入力します:
cat example.html

cat は「連結する」という意味ですが、一般的にはファイルの内容を表示するために使われます。example.com のホームページのHTMLコンテンツが表示されるはずです。HTMLに慣れていない場合は、これが文字の乱雑な塊のように見えるかもしれませんが、心配しないでください。これはWebブラウザがWebページを表示するために使う生のコードです。

  1. 時には、ファイルが非常に大きく、最初の部分だけを見たい場合があります。このため、head コマンドを使うことができます:
head -n 10 example.html

このコマンドは、ファイルの最初の10行を表示します。-n 10 オプションは、head に10行を表示するように指示します。この数を変更することで、より多い行または少ない行を表示できます。

  1. ファイルの末尾を見るには、tail コマンドを使うことができます:
tail -n 10 example.html

これは、ファイルの最後の10行を表示します。

これらのコマンドは、ファイルを完全に開かずに迅速に調べるのに便利です。特に、大きなファイルを扱う場合に役立ちます。

curl を使った複数のファイルのダウンロード

curl は、1つのコマンドで複数のファイルをダウンロードできます。一度に2つのファイルをダウンロードしてみましょう。

  1. まず、example.com のインデックスページとアバウトページの両方をダウンロードし、その内容を表示してみましょう:
curl http://example.com/index.html http://example.com/about.html

このコマンドは、両方のページの内容をターミナルに出力します。2つのHTMLドキュメントが順に表示されます。これは迅速なチェックに便利ですが、ファイルを保存したい場合は理想的ではありません。

  1. これらのファイルを表示する代わりに保存するには、-O オプションを使います。大文字の -O は、curl にURLからファイル名を使うように指示します:
curl -O http://example.com/index.html -O http://example.com/about.html

このコマンドは、両方のファイルをダウンロードし、それらを現在のディレクトリに元の名前(index.htmlabout.html)で保存します。今回は、コンテンツがターミナルに表示されることはありません。

  1. ファイルがダウンロードされたことを確認するには、ディレクトリの内容を一覧表示できます:
ls -l index.html about.html

両方のファイルが一覧表示され、それらのサイズと最終更新日も表示されるはずです。

  1. 複数のファイルをダウンロードしたいが、独自の名前を付けたい場合は、複数の -o オプションを使うことができます:
curl -o custom_index.html http://example.com/index.html -o custom_about.html http://example.com/about.html

これにより、ファイルが custom_index.htmlcustom_about.html として保存されます。

wget を使ったファイルのダウンロード

次に、ファイルをダウンロードするためのもう一つの人気のあるツールである wget を調べてみましょう。wget は、そのシンプルさと、大規模なダウンロードや不安定な接続を処理する能力のため、しばしば好まれます。

  1. まず、wget を使って example.com からファイルをダウンロードしてみましょう:
wget http://example.com/index.html

wget は、ファイルをダウンロードする際に進行バーを表示します。これは、大きなファイルの場合に特に便利です。なぜなら、ダウンロードされたファイルの量と完了までの残り時間がわかるからです。

  1. デフォルトでは、wget はファイルを元の名前で保存します。別の名前を指定するには、-O オプションを使います(注意:小文字の o を使う curl とは異なり、大文字の O です):
wget -O custom_name.html http://example.com/index.html

これにより、ファイルが custom_name.html として保存されます。進行バーは依然として表示されますが、指定した名前でファイルが保存されます。

特定のディレクトリにファイルをダウンロードする

多くの場合、現在の作業ディレクトリではなく、特定のディレクトリにファイルをダウンロードしたいと思うことがあります。curlwget の両方でこれを行うことができますが、それぞれ異なる方法を使用します。

  1. まず、ファイルをダウンロードするための新しいディレクトリを作成しましょう:
mkdir downloads

これは、現在の場所に downloads という名前の新しいディレクトリを作成します。

  1. 次に、curl を使ってこのディレクトリにファイルをダウンロードしましょう:
curl -o downloads/curl_file.html http://example.com

curl-o オプションを使うと、出力ファイル、そのパスを含めて指定できます。このコマンドは、example.com からコンテンツをダウンロードし、downloads ディレクトリに curl_file.html として保存します。

  1. 次に、wget を使って同じディレクトリにファイルをダウンロードしましょう:
wget -P downloads http://example.com/index.html

wget-P オプションは「接頭辞」を意味し、ファイルを保存したいディレクトリを指定できます。このコマンドは、example.com から index.html をダウンロードし、downloads ディレクトリに保存します。

  1. 両方のファイルが downloads ディレクトリにダウンロードされたことを確認できます:
ls -l downloads

出力には curl_file.htmlindex.html の両方が表示されるはずです。

  1. 現在のディレクトリを変更することなく、これらのファイルの内容を見るには、完全なパス付きで cat を使うことができます:
cat downloads/curl_file.html
cat downloads/index.html

これにより、ダウンロードしたファイルの内容を確認できます。

まとめ

おめでとうございます!curlwget を使ってインターネットからファイルをダウンロードする実験を無事完了しました。学んだことを振り返りましょう:

  1. curl を使って個々のファイルをダウンロードし、独自の名前で保存しました。
  2. 1つの curl コマンドで複数のファイルをダウンロードする方法を調べました。
  3. wget を使って、デフォルト名と独自の名前でファイルをダウンロードする方法を学びました。
  4. wget を使って再帰的にファイルをダウンロードする練習をしました。
  5. curlwget の両方を使って、特定のディレクトリにファイルをダウンロードする方法を学びました。

これらのスキルは、Webコンテンツの取得からソフトウェアパッケージのダウンロードまで、Linuxの多くのタスクにとって基本的です。Linuxの学習を続けるにつれて、これらのツールはさまざまなスクリプト作成や自動化タスクにとって非常に貴重であることがわかります。

ご覚えておいてください。curlwget にはさらに多くのオプションと機能があり、それらを探求することができます。それらの詳細機能について学ぶには、マニュアルページ(man curlman wget)を参照してください。

これらのツールを練習し続け、LinuxでのファイルとWebコンテンツの操作に精通するために探求し続けましょう!