下面详细介绍使用 和
wget 下载文件的完整用法,包括基础下载、断点续传的原理、高级参数配置以及常见问题解决:
curl
一、wget:专注下载的工具
是 Linux 下经典的命令行下载工具,专为文件传输设计,对断点续传、递归下载等支持完善,参数简洁直观。
wget
1. 基础下载命令
# 基本用法:直接下载,保存为链接中的文件名
wget https://example.com/large_file.iso
# 自定义保存文件名(-O 参数,注意大写)
wget -O my_download.iso https://example.com/large_file.iso
# 后台下载(适合大文件,终端关闭不影响)
wget -b https://example.com/large_file.iso
# 后台下载的日志会默认保存到 wget-log,查看日志:tail -f wget-log
2. 断点续传核心用法
核心参数:(–continue)作用:当下载中断后,
-c 会检查本地已下载的文件大小,向服务器发送
wget 请求(如
Range),仅获取剩余部分,避免重复下载。
Range: bytes=1000000-
# 首次下载(若中断,直接用下面的命令续传)
wget https://example.com/large_file.iso
# 断连后续传(必须使用 -c,且文件名与已下载部分一致)
wget -c https://example.com/large_file.iso
# 自定义文件名的续传(确保 -O 指定的文件名与已下载文件一致)
wget -c -O my_download.iso https://example.com/large_file.iso
续传原理:
服务器需支持 HTTP 1.1 的 头(几乎所有现代服务器都支持,旧服务器可能不兼容,此时
Range 会失效,重新下载整个文件)。
-c 会对比本地文件大小和服务器文件总大小:若本地文件小于服务器文件,从断点续传;若相等,提示 “文件已完整”;若本地文件更大,会询问是否覆盖。
wget
3. 高级参数(提升下载效率 / 适应性)
# 限速下载(避免占用全部带宽,单位:字节/秒,k=千字节,m=兆字节)
wget -c --limit-rate=2m https://example.com/large_file.iso # 限速 2MB/s
# 设置重试次数(默认重试 20 次,网络不稳定时增加)
wget -c --tries=50 https://example.com/large_file.iso # 最多重试 50 次
# 忽略证书错误(适用于自签名 HTTPS 链接)
wget -c --no-check-certificate https://example.com/large_file.iso
# 添加请求头(模拟浏览器,部分服务器需要特定 User-Agent)
wget -c -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/90.0.4430.212" https://example.com/large_file.iso
# 代理下载(通过 HTTP 代理)
wget -c -e use_proxy=yes -e http_proxy=127.0.0.1:8080 https://example.com/large_file.iso
二、curl:多功能数据传输工具
功能更全面(支持 HTTP/HTTPS/FTP 等多种协议,可模拟表单提交、API 请求等),断点续传需通过特定参数实现,适合需要结合其他网络操作的场景。
curl
1. 基础下载命令
# 基本用法:按链接文件名保存(-O 大写)
curl -O https://example.com/large_file.iso
# 自定义保存文件名(-o 小写)
curl -o my_download.iso https://example.com/large_file.iso
# 显示下载进度(-# 用进度条显示,默认是详细日志)
curl -# -O https://example.com/large_file.iso
2. 断点续传核心用法
核心参数:(–continue-at -)作用:
-C - 用于指定续传的起始位置,
-C 表示让
- 自动检测本地文件大小作为起始位置(与
curl 效果类似)。
wget -c
# 首次下载(中断后用下面的命令续传)
curl -O https://example.com/large_file.iso
# 断连后续传(必须用 -C -,且文件名与已下载部分一致)
curl -C - -O https://example.com/large_file.iso
# 自定义文件名的续传(确保 -o 指定的文件名与已下载文件一致)
curl -C - -o my_download.iso https://example.com/large_file.iso
续传原理:
与 类似,依赖服务器支持
wget 请求。
Range 会读取本地文件的字节数
curl,向服务器发送
N 请求,获取剩余数据并追加到本地文件。若服务器不支持
Range: bytes=N-,
Range 会忽略
curl 参数,重新下载整个文件(此时会覆盖本地文件,需谨慎)。
-C
3. 高级参数(适配复杂场景)
# 限速下载(--limit-rate,单位:字节/秒,k=千,m=兆)
curl -C - -# --limit-rate 2m -O https://example.com/large_file.iso
# 设置超时时间(连接超时 10 秒,总下载超时 300 秒)
curl -C - -o my_download.iso --connect-timeout 10 --max-time 300 https://example.com/large_file.iso
# 忽略证书错误(HTTPS 自签名证书)
curl -C - -k -O https://example.com/large_file.iso # -k 等价于 --insecure
# 添加请求头(模拟浏览器或携带 Cookie)
curl -C - -H "User-Agent: Mozilla/5.0" -H "Cookie: sessionid=xxx" -O https://example.com/large_file.iso
# 代理下载(HTTP 代理)
curl -C - -x http://127.0.0.1:8080 -O https://example.com/large_file.iso
三、断连续传的关键注意事项
文件名必须一致续传时,/
wget 会根据文件名识别本地已下载文件,若文件名不同(如首次用
curl,续传时用
wget file.zip),会视为新文件重新下载。
wget -c file2.zip
本地文件未被修改若手动编辑过已下载的部分文件(如删除、修改内容),续传后可能导致文件损坏(因为服务器传输的是剩余字节,与本地修改后的内容不匹配)。
服务器支持验证可通过 查看服务器是否支持
curl -I(检查响应头是否有
Range):
Accept-Ranges: bytes
curl -I https://example.com/large_file.iso
# 若输出包含 "Accept-Ranges: bytes",则支持续传;否则不支持。
大文件推荐搭配校验下载完成后,建议用 或
md5sum 验证文件完整性(若服务器提供校验值):
sha256sum
# 示例:校验 MD5
md5sum large_file.iso # 计算本地文件 MD5
# 对比服务器提供的 MD5 值,一致则文件完整。
四、常见问题解决
续传时提示 “文件已存在” 但未完成
:默认会询问是否覆盖,输入
wget 后加
n 重新执行即可。
-c:若本地文件存在,
curl 会自动续传;若未续传,可能是服务器不支持
-C -,需重新下载。
Range
HTTPS 链接下载失败
检查是否有证书问题:加 (wget)或
--no-check-certificate(curl)。确认链接是否需要登录:通过
-k 携带登录凭证。
-H "Cookie: ..."
下载速度过慢
尝试限速(避免被服务器限制)。更换网络或使用代理( 或
-e http_proxy 参数)。
-x
总结
优先用 :专为下载设计,续传(
wget)更稳定,参数简单,适合新手。选
-c 场景:需要结合其他网络操作(如模拟请求、处理 API),或习惯其灵活的参数体系。
curl















暂无评论内容