wget

wget — консольная качалка от GNU. Проще curl-а, но заточен под другое: скачивание файлов, рекурсивная выкачка сайтов, зеркалирование. HTTP, HTTPS, FTP, FTPS. Устанавливается по дефолту на большинстве Linux, но не в macOS (там надо brew install wget).

Отличие от curl

Правило пальца: отладить API — curl, скачать что-то — wget.

Базовые команды

# файл на диск (имя с URL)
wget https://example.com/file.zip

# в конкретный файл
wget -O out.zip https://example.com/file.zip

# продолжить оборванную скачку
wget -c https://example.com/big.iso

# фоном
wget -b https://example.com/big.iso
# логи в wget-log

Скачать целый сайт (mirror)

wget --mirror --convert-links --adjust-extension --page-requisites \
     --no-parent https://example.com/

Полезные флаги

Через прокси

# через env
export http_proxy=http://127.0.0.1:8080
export https_proxy=http://127.0.0.1:8080
wget https://example.com

# или прямо
wget -e use_proxy=yes -e https_proxy=http://127.0.0.1:8080 https://example.com

SOCKS wget не умеет напрямую (в отличие от curl). Обходят через tsocks, proxychains или socat.

Список файлов из текстового файла

# urls.txt: по одной ссылке в строке
wget -i urls.txt

# параллельно 4 потока (только с xargs)
cat urls.txt | xargs -n 1 -P 4 wget

wget2

Наследник, официальный GNU-проект. Многопоточная скачка, HTTP/2, лучше HSTS-обработка. Синтаксис совместимый. Устанавливается отдельно: apt install wget2. Дефолтом ещё не заменил wget, но постепенно.

Альтернативы