リストから複数のファイルをダウンロードする
実際のシナリオでは、複数のファイルをダウンロードする必要があることがよくあります。各 wget
コマンドを手動で入力するのは非効率的です。幸いなことに、wget
はリストから複数のファイルをダウンロードできるため、自動化に最適です。
URL を含むファイルの作成
まず、ダウンロードしたいファイルの URL を含むテキストファイルを作成しましょう。
cd ~/project/download_resources
echo "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz" > download_list.txt
echo "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz" >> download_list.txt
echo "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz" >> download_list.txt
これらのコマンドでは:
- 最初の
echo
コマンドは download_list.txt
という新しいファイルを作成し、最初の URL を追加します。
- それ以降の
echo
コマンドは >>
(二重リダイレクト)を使用して、追加の URL をファイルに追加します。
ファイルの内容が正しいことを確認しましょう。
cat download_list.txt
3 つの URL がそれぞれ独立した行に表示されるはずです。
https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
入力ファイルを使用した wget の実行
これで、wget
の -i
オプションを使用して、ファイルから URL を読み取り、すべてのファイルをダウンロードできます。
wget -i download_list.txt
このコマンドは、wget
に download_list.txt
から URL を読み取り、各ファイルを順番にダウンロードするよう指示します。単一のファイルをダウンロードしたときと同様に、各ダウンロードの出力が表示されます。
--2024-01-10 10:30:51-- https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22808518 (22M) [application/octet-stream]
Saving to: 'Python-3.7.0.tgz'
Python-3.7.0.tgz 100%[=============================================================>] 21.75M 25.9MB/s in 0.8s
2024-01-10 10:30:52 (25.9 MB/s) - 'Python-3.7.0.tgz' saved [22808518/22808518]
--2024-01-10 10:30:52-- https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
...
ダウンロードしたファイルの確認
ダウンロードが完了したら、すべてのファイルが正しくダウンロードされたことを確認しましょう。
ls -lh Python-3.7.*
リストからダウンロードした 3 つの Python 3.7.x ファイルが表示されるはずです。
-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.0.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.1.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:31 Python-3.7.2.tgz
バッチダウンロードスクリプトの作成
将来的に使用するために、リストからファイルをダウンロードできる簡単なシェルスクリプトを作成しましょう。これは、wget
を自動化で使用する方法を示しています。
cd ~/project/download_resources
nano batch_download.sh
ファイルに以下の内容を入力します。
#!/bin/bash
## A simple script to download files from a list
if [ -f "$1" ]; then
echo "Downloading files from list: $1"
wget -i "$1"
else
echo "Error: File $1 not found"
exit 1
fi
Ctrl+O
を押してファイルを保存し、Enter
を押し、Ctrl+X
で終了します。
スクリプトを実行可能にします。
chmod +x batch_download.sh
これで、将来的に任意のリストからファイルをダウンロードするためにこのスクリプトを使用できます。
./batch_download.sh download_list.txt
このコマンドは、以前の wget -i download_list.txt
コマンドと同じことを行いますが、再利用可能なスクリプトにまとめられています。