问题描述
如何使用wget
或其他自动方式下载文件(列在文本文件中)?
示例文件列表:
www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf
最佳解决方法
wget有一个内置标志:wget -i your_list
你可以通过阅读man wget
来找到这种类型的东西
次佳解决方法
与他们并行
cat urlfile | parallel --gnu "wget {}"
默认情况下,它将运行与核心一样多的进程,如果您想通过在并行之后添加“-j 20”来快速将其拉低,则可以将其再提高10倍。
第三种解决方法
xargs -i wget 'http://{}' < your_list
第四种方法
parallel
具有将使用input-file作为源的内置标志--arg-file
(-a
),因此您可以避免cat |
。您可以使用
parallel --gnu -a urlfile wget
或者干脆parallel --gnu wget < urlfile
第五种方法
awk '{print "http://" $0;}' list.txt | xargs -l1 wget
其中list.txt是您的列表文件
第六种方法
我看到了Florian Diesch的回答。
我通过在命令中包含参数bqc
来实现它。
xargs -i wget -bqc 'http://{}' < download.txt
所有下载在后台并行开始。
-
-b
:背景。开始后立即转到背景 -
-q
:安静。关闭wget的输出 -
-c
:继续。继续获取partially-downloaded文件