xargs配合wget批量下载的核心是将url列表转为命令行参数,支持串行或并行(-p)、静默(-q)、断点续传(-c)、指定目录(-p ./dir)、防403(--user-agent)等,而简单场景用wget -i urls.txt更直接。

用 xargs 配合 wget 批量下载,核心是把 URL 列表转成 wget 的参数,避免手动逐条执行,还能控制并发、静默运行、处理异常。
准备 URL 列表文件
先准备好一个纯文本文件(比如 urls.txt),每行一个完整 URL:
https://example.com/photo2.png
https://cdn.site.net/logo.svg
基础批量下载(串行)
最简方式,一行一个 URL,依次下载:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
cat urls.txt | xargs wget- 加
-q静默运行:cat urls.txt | xargs -n 1 wget -q(-n 1确保每个 URL 单独调用 wget,避免参数拼接出错) - 加
-c支持断点续传:cat urls.txt | xargs -n 1 wget -c -q
并行下载(提速关键)
默认是串行,加 -P 可开启多进程并发下载:
-
cat urls.txt | xargs -n 1 -P 4 wget -c -q:最多同时跑 4 个 wget 进程 -
-P 0表示不限制并发数(慎用,可能触发目标站限流或本地端口耗尽) - 建议值:4~8,视网络带宽和目标服务器承受力调整
增强健壮性与实用性
真实场景中常需应对重名、失败、路径混乱等问题:
- 指定输出目录:
cat urls.txt | xargs -n 1 -P 4 wget -c -q -P ./downloads/ - 避免文件名乱码或非法字符:
cat urls.txt | xargs -n 1 -P 4 wget -c -q --restrict-file-names=windows - 模拟浏览器防 403:
cat urls.txt | xargs -n 1 -P 4 wget -c -q --user-agent="Mozilla/5.0 (X11; Linux x86_64)..." - 失败时不中断整个流程:
wget默认失败返回非零退出码,但xargs默认会停止;加-r(--no-run-if-empty不影响此场景),实际靠wget自身重试机制更可靠——它默认失败重试 20 次,可加--tries=5限制
替代方案:用 -i 更简洁(适合简单批量)
如果只是按行下载,不用并发,wget -i 比 xargs 更直接:
wget -c -q -i urls.txt- 支持
--user-agent、--restrict-file-names等所有 wget 参数 - 但不支持原生命令级并发,要并行仍得套
xargs或用其他工具










