목록에서 여러 파일 다운로드
실제 시나리오에서는 여러 파일을 다운로드해야 하는 경우가 많습니다. 각 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
각 줄에 하나의 URL 이 있는 세 개의 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 사용
이제 -i 옵션을 wget과 함께 사용하여 파일에서 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.*
목록에서 다운로드한 세 개의 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 명령과 동일한 작업을 수행하지만 재사용할 수 있는 스크립트로 래핑되어 있습니다.