Как загрузить файлы (перечисленные в текстовом файле), используя wget
или другим автоматическим способом?
Пример списка файлов:
www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf
В wget есть встроенный флаг для этого: wget -i your_list
Подобные вещи можно найти, прочитав man wget
Файл ссылок links.txt
Команда для загрузки файла всех ссылок
cat links.txt | wget -i
parallel
имеет встроенный флаг --arg-file
(-a
), который будет использовать входной файл в качестве источника, поэтому вы можете избежать cat |
. Вы можете использовать
parallel --gnu -a urlfile wget
Или просто parallel --gnu wget < urlfile
Получите их параллельно с
cat urlfile | parallel --gnu "wget {}"
По умолчанию он будет запускать столько процессов, сколько у вас ядер, вы можете увеличить его еще в 10 раз, если вы действительно хотите быстро их уменьшить, добавив " -j 20 "после параллели.
Я видел ответ Флориана Дайша.
Я заставил его работать, включив параметр bqc
в команду.
xargs -i wget -bqc 'http://{}' < download.txt
Все загрузки начались параллельно в фоновом режиме.
-b
: Фон. Перейти к фону сразу после запуска -q
: Тихо. Отключите вывод wget -c
: Продолжить. Продолжить получение частично загруженного файла awk '{print "http://" $0;}' list.txt | xargs -l1 wget
где list.txt является Вашим файлом списка
Я просто протестировал это:
xargs -a download_file -L1 wget
Это работает на меня. Ссылки в txt файле должны быть в отдельных строках.