Linux 怎么批量下载文件?wget/curl 教程

1次阅读

wget更适合批量下载,支持-i参数读取URL列表并提供断点续传、重试等选项;curl需配合shell脚本实现批量下载,灵活性高但配置更复杂。

Linux 怎么批量下载文件?wget/curl 教程

linux 中批量下载文件,wgetcurl 是最常用的命令行工具。虽然两者都能完成下载任务,但在批量操作上,wget 更适合简单场景,而 curl 功能更灵活但需要配合脚本使用。

1. 使用 wget 批量下载(推荐)

wget 支持从文件中读取 URL 列表,非常适合批量下载。

方法一:用 -i 参数从文件读取 URL

创建一个文本文件,每行一个下载链接:

https://example.com/file1.zip https://example.com/file2.zip https://example.com/file3.zip

执行命令:

wget -i urls.txt

这样会依次下载所有文件。

常用选项:

  • -c:断点续传,网络中断后可继续下载
  • -t 3:失败时重试 3 次
  • -nv:非详细模式,减少输出信息
  • -P /path/to/dir:指定保存目录

例如:

wget -c -t 3 -nv -P ./downloads -i urls.txt

方法二:用 shell 循环批量下载

如果 URL 有规律,可以直接用 for 循环:

for i in {1..10}; do   wget https://example.com/file$i.zip done

2. 使用 curl 批量下载

curl 不像 wget 支持 -i 参数直接读文件,但可以结合 shell 脚本实现。

方法一:用 while 读取文件中的 URL

Linux 怎么批量下载文件?wget/curl 教程

讯飞智文

一键生成PPT和Word,让学习生活更轻松。

Linux 怎么批量下载文件?wget/curl 教程 61

查看详情 Linux 怎么批量下载文件?wget/curl 教程

while read url; do   curl -O "$url" done < urls.txt

注意:-O 表示使用远程文件名保存。

方法二:配合 seq 或花括号批量请求

适用于编号连续的文件:

for i in {1..5}; do   curl -O https://example.com/image$i.jpg done

curl 小技巧:

  • -#:显示进度条
  • -L:跟随重定向
  • –fail:出错时不输出 html 错误页
  • -o filename:自定义保存名(支持变量)

例如按序号命名:

for i in {1..3}; do   curl -# -L -o "file$i.zip" "https://example.com/file$i.zip" done

3. 实用建议和注意事项

避免被封 IP

大批量下载时,服务器可能限制频繁请求。可以加延迟:

for url in $(cat urls.txt); do   wget "$url"   sleep 1  # 每次下载后暂停 1 秒 done

检查链接有效性

提前测试几个链接是否能访问:

head -3 urls.txt | while read url; do   curl -I "$url" 2>/dev/null | head -1 done

日志记录

把下载过程记录到日志,方便排查问题:

wget -i urls.txt >> download.log 2>&1

基本上就这些。wget 更适合“开箱即用”的批量下载,curl 更适合定制化场景。根据你的需求选择即可。

text=ZqhQzanResources