wget同时下载多个文件

使用wget下载文件

# wget下载单个文件
wget https://xxx.com/static/v1.mp4
  • 使用shell 脚本在一个命令中下载多个文件
#!/bin/bash
while read file; do
    wget ${file}
done < demo.txt

demo.txt 包含所有必须下载的文件,每个文件都有自己的一行

https://xxx.com/static/v1.mp4
https://xxx.com/static/v2.mp4
https://xxx.com/static/v3.mp4

这种方法还是串行的下载文件,并不能节省下载时间。还可以通过并行下载文件来加快速度。

使用 wget并行下载

  • Bash 方法

使用& 将wget进程发送到后台

#!/bin/bash
while read file; do
    wget ${file} &
done < demo.txt

对wget每次调用都被派生到后台并在其自己单独的子 shell 中异步运行。
尽管在并行下载文件,但这种方法不能反馈出错的信息。

  • wget Fork

使用-b参数,让wget将自己Fork到后台

#!/bin/bash
while read file; do
    wget ${file} -b
done < demo.txt

就像&运算符一样,每个调用都被派生到后台并异步运行。但不同的是-b参数还提供了每次下载的日志文件。
可以grep这些日志文件来检查没有发生错误

  • 使用xargs

优雅的解决方案就是使用xargs,可以设置同时运行的最大进程数

#!/bin/bash
cat rumenz.txt | xargs -n 1 -P 2 wget -q

使用-q静默方式。如果不设置xargs会将所有进程的输出重定向到 stdout,会输出很多信息。如果没有发生错误,它将以 0 值退出,否则以 1 值退出。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讓丄帝愛伱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值