You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用curl批量下载多个URL且无需重复输入相同参数

问题原因

curl 中-O(--remote-name,按远端文件名保存)、-J(--remote-header-name,优先从Content-Disposition响应头读取文件名)属于单URL作用选项,每声明一次仅对紧随其后的1个URL生效。仅在最开头写一次-LOJ时,只会作用到第一个URL,第二个URL没有对应保存参数,响应内容会直接输出到标准输出,不会生成本地文件。

解决方案

方案1:使用全局生效的 --remote-name-all 参数(推荐)

curl 7.19.0及以上版本支持--remote-name-all参数,该参数会让命令行中后续所有URL都默认启用-O逻辑,搭配-L(跟随重定向)、-J即可实现一次声明参数作用于所有URL:

curl -L --remote-name-all -J "https://example.com/foo.jpg" "https://example.com/bar.jpg"

执行后两个文件都会正常保存到本地。

方案2:shell 循环适配旧版本/批量下载

如果遇到不支持--remote-name-all的老旧curl版本,或者需要批量下载大量URL,可以用shell循环处理:

# 直接写多个URL
for url in "https://example.com/foo.jpg" "https://example.com/bar.jpg"; do
  curl -LOJ "$url"
done

# 也可以把URL提前存入文本文件,每行一个
while read -r url; do
  curl -LOJ "$url"
done < urls.txt

内容的提问来源于stack exchange,提问作者what the

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:54:03