wget断点续传必须加-c参数,但仅当文件已存在且服务器返回206状态码时才生效;若服务器不支持范围请求、url重定向未配-o、文件被改名或移动,均会导致续传失败。

断点续传必须加 -c,但不是加了就一定生效
断点续传只在目标文件已存在且服务器返回 206 Partial Content 时才真正起作用。如果下载中断后直接重跑 wget -c URL,但服务器不支持范围请求(比如静态 Nginx 未开启 add_header Accept-Ranges bytes;),wget 会报错 Rejecting request to re-download file 并退出。
常见误操作包括:
- 用
-O指定了文件名,但第二次运行时没加-c,导致重新下载覆盖 - 文件被手动改名或移动过,
wget找不到原文件,无法续传 - HTTP 重定向后 URL 变了(如 302 跳转),
-c会失效,需配合-O显式固定输出名
wget -c 和 wget -c -O filename 的区别很关键
默认行为下,wget -c https://example.com/big.zip 会尝试续传当前目录下名为 big.zip 的文件;但如果该 URL 实际返回的是重定向(比如指向带时间戳的 CDN 地址),最终保存的文件名可能变成 big.zip?x=123,下次再用 -c 就找不到原文件。
稳妥做法是显式绑定输出名:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
wget -c -O archive.zip https://example.com/download—— 强制写入archive.zip,无论重定向怎么变 - 若已存在
archive.zip且服务器支持206,则从断点继续 - 若不存在,就从头下载,不会报错
不稳定网络下要搭配重试和等待,否则 -c 很容易卡死
单纯 -c 不解决连接闪断问题。实际中建议组合使用:
-
--tries=0:无限重试(适合无人值守场景) -
--retry-connrefused:连拒绝连接也重试(比如服务端临时过载) -
-w 2 --random-wait:每次请求前等 1–4 秒,避免被限速或封 IP -
-T 60:单次请求超时设为 60 秒,防止挂住
完整示例:wget -c --tries=0 --retry-connrefused -w 2 --random-wait -T 60 -O data.tar.gz https://dl.example.com/data.tar.gz
后台运行 + 日志记录是生产环境标配
大文件下载动辄几小时,终端断开会导致进程退出。用 -b 后台启动,并用 -o 记录日志:
wget -c -b -o download.log -O file.iso https://.../file.iso- 日志里会写明 PID,可用
kill PID中止 - 注意:
-b默认把 stdout/stderr 重定向到wget-log,除非用-o显式指定,否则看不到进度
容易忽略的一点:如果下载中途机器重启,-c 仍有效——只要文件没被删、没被截断,重启后重新执行命令即可继续。










