如何使用curl命令下载文件
环境
Centos7.7
下载文件,使名称一致
可以使用curl下载文件的相同名称作为本地文件名。可以用-O选项。
[root@localhost ~]# curl http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 7205M 0 25.9M 0 0 5452k 0 0:22:33 0:00:04 0:22:29 5452k [root@localhost ~]# ls CentOS-8.1.1911-x86_64-dvd1.iso
下载多个文件
要同时下载多个文件时,可以使用多个-O标志,后面跟着要url链接。
[root@localhost ~]# curl -O [URL1] -O [URL2] -O [URL3] ...
例子:
[root@localhost ~]# curl -O www.example.com/file.pdf -O www.example.com/file1.pdf % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 20597 100 20597 0 0 1436k 0 --:--:-- --:--:-- --:--:-- 1436k 100 20597 100 20597 0 0 9.8M 0 --:--:-- --:--:-- --:--:-- 9.8M
如果url中文件带有数字,并且有顺序,可以使用正则语法:
[root@localhost ~]# curl ftp://ftp.example.com/file[1-30].jpg
如果希望使用不同的名称保存多个文件,可以使用-o选项来实现,如下所示。
[root@localhost ~]# curl -o file2.pdf www.example.com/file.pdf -o file3.pdf www.example.com/file1.pdf % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 20597 100 20597 0 0 957k 0 --:--:-- --:--:-- --:--:-- 957k 100 20597 100 20597 0 0 19.6M 0 --:--:-- --:--:-- --:--:-- 19.6M
下载文件显示进度条
curl在文件下载期间显示一个进度表,显示传输速率、传输的数据量、剩余的时间等……
[root@localhost ~]# curl -# -O http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso ## 3.5%
如何限制最大传输速度
限制数据传输速率的用法为:
[root@localhost ~]# curl --limit-rate [value] [URL]
这个值可以用字节表示,k后缀为千字节,m后缀为兆字节,g后缀为千兆字节。
以下命令将把下载速度限制在1mb以内:
[root@localhost ~]# curl --limit-rate 1m -O http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 7205M 0 21.1M 0 0 1033k 0 1:58:57 0:00:20 1:58:37 1005k
总结
curl提供了很多有用的技巧,比如代理支持、用户身份验证、FTP上传、HTTP post、SSL连接、cookie、文件传输恢复、Metalink等等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)