如何使用curl下载范围内的文件,并指定自定义文件名?

如何使用curl下载范围内的文件,并指定自定义文件名?,curl,Curl,因此,我尝试使用以下命令下载一组文件: curl -O http://example.com/[1-100]/test.json 它会将所有文件保存为test.json,有没有办法为该范围内的每个文件指定一个动态文件名 谢谢 杰森试试这个: for i in $(seq 1 100) do curl -o "test.$i.json" "http://example.com/$i/test.json" done curl手册页非常广泛,它有各种各样的选项。您可以根据文档在上查看: -o、

因此,我尝试使用以下命令下载一组文件:

curl -O http://example.com/[1-100]/test.json
它会将所有文件保存为test.json,有没有办法为该范围内的每个文件指定一个动态文件名

谢谢

杰森

试试这个:

for i in $(seq 1 100)
do
  curl -o "test.$i.json" "http://example.com/$i/test.json"
done
curl手册页非常广泛,它有各种各样的选项。您可以根据文档在

上查看:

-o、 --产出

将输出写入,而不是标准输出。如果使用{}或[]获取多个文档,则可以在说明符中使用“#”后跟数字。该变量将替换为正在获取的URL的当前字符串

因此,您可以使用
#n
占位符组合新文件的自定义文件名

curl http://example.com/[1-100]/test.json -o response_#1.json

#1
curl中,将放置当前迭代器

谢谢!但是,根据手册页中的这一行:“curl将尝试重新使用连接进行多个文件传输,以便从同一服务器获取多个文件不会进行多次连接/握手。这提高了速度。当然,这只在单个命令行上指定的文件上完成,不能在单独的curl调用之间使用。”,如果一次性完成,它将重用连接,但如果使用多个命令,则不会进行优化。这就是为什么我问是否有办法使用单个命令