当前位置: 首页>>技术问答>>正文


从列表中下载文件

,

问题描述

如何使用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文件

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/667.html,未经允许,请勿转载。