wget
或其他自动方式下载文件(在文本文件中列出)?示例文件列表:
www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf
#1 楼
wget对此具有内置标记:wget -i your_list
您可以通过阅读
man wget
找到这种东西。
#2 楼
将它们与cat urlfile | parallel --gnu "wget {}"
并行运行默认情况下,它将运行与您拥有内核一样多的进程,如果您确实想拉动它们,则可以将其增加10倍通过在并行之后添加“ -j 20”来快速降低。
评论
我只是无法使它工作。我没有看到任何proc产生,为wget切换echo不会输出任何东西
–雅库布·博琴斯基(Jakub Bochenski)
2014年5月9日19:10
注意“它将运行与内核一样多的进程”-网络带宽可能会成为更多限制因素。
–野生
2014年6月21日在17:10
真的要看对于大量的小文件,这几乎快了一个数量级,因为大多数传输时间是握手/ TCP往返的时间。同样,在要从多个较小的主机进行下载的情况下,有时每个连接的带宽是有限的,因此这会增加麻烦。
–meawoppl
14年6月23日在17:22
如果要使用具有不同主机名的相对URL(不带主机名的资源ID)列表,这将非常有用,例如:cat urlfile |并行--gnu“ wget example1.com {}”和cat urlfile |并行--gnu“ wget example2.com {}”
–毛里西奥·桑切斯(MauricioSánchez)
15年5月14日在2:21
可能还会补充说,向网站泛滥以大量并行请求获取大文件并不是特别好。对于大型网站并不重要,但是如果只是较小的网站,则应当心。
–马格努斯
19-09-19在10:02
#3 楼
parallel
具有内置标志--arg-file
(-a
),它将使用输入文件作为源,因此可以避免使用cat |
。您可以使用parallel --gnu -a urlfile wget
,或者简单地使用
parallel --gnu wget < urlfile
#4 楼
xargs -i wget 'http://{}' < your_list
#5 楼
awk '{print "http://" q4312078q;}' list.txt | xargs -l1 wget
其中list.txt是您的列表文件
#6 楼
我看到了Florian Diesch的答案。我通过在命令中包含参数
bqc
来使其正常工作。在后台。-b
:背景。启动后立即进入后台-q
:安静。关闭wget的输出-c
:继续。继续获取部分下载的文件#7 楼
链接文件links.txt用于下载所有链接文件的命令
cat links.txt | wget -i
评论
这是行不通的。 wget -i links.txt是正确的命令。
–非常
18年7月8日在0:34
不,这不是正确的命令。正确的命令是这样的:“ cat links.txt | wget -i”
–DreamCoder
18年7月19日在5:07
缺少一些破折号
–夏日的天空
20-2-12在17:14
#8 楼
我刚刚测试过:xargs -a download_file -L1 wget
它对我有用。
txt文件中的链接必须位于单独的行中。
评论
@aureianimus如果我想跳过链接2,那又如何?
–alhelal
17年11月22日在13:11
这个解决方案对我有用。我对按顺序而不是并行下载感到满意。
–asiby
17年12月21日在16:14