如何使用 curl 命令下载文件?常用参数与场景全攻略 – wiki基地


如何使用 curl 命令下载文件?常用参数与场景全攻略

curl (Client URL) 是一个功能强大的命令行工具,用于通过各种网络协议传输数据。在开发和运维工作中,它最常用的功能之一就是下载文件。本文将带您从零开始,掌握 curl 下载文件的各种姿势。

1. 最简单的下载:直接输出到屏幕

默认情况下,curl 会将下载的内容直接输出到标准输出(终端屏幕)。这对于查看文本文件(如脚本、HTML、JSON)非常有用。

bash
curl http://example.com/file.txt

2. 保存文件:-o-O 的区别

如果您想将下载的内容保存为文件,需要使用 -o (小写) 或 -O (大写) 参数。

使用 -o (小写):指定文件名保存

您可以自定义保存的文件名。

“`bash

将 index.html 下载并保存为 my_page.html

curl -o my_page.html http://example.com/index.html
“`

使用 -O (大写):使用远程文件名保存

如果您希望保存的文件名与服务器上的文件名一致,使用 -O

“`bash

文件将保存为 release-v1.tar.gz

curl -O http://example.com/download/release-v1.tar.gz
“`

注意:如果 URL 只有域名(如 http://example.com/),使用 -O 会报错,因为 curl 无法从 URL 中提取文件名。此时必须使用 -o

3. 跟随重定向:-L

很多下载链接会进行 HTTP 重定向(例如从 HTTP 跳到 HTTPS,或短链接跳转)。默认情况下,curl 不会跟随重定向,只会返回 301/302 响应头。使用 -L (Location) 参数可以让 curl 自动跳转。

“`bash

自动跟随跳转并保存文件

curl -L -O http://example.com/redirect-link.zip
“`

4. 断点续传:-C -

下载大文件时,如果网络中断,重新下载非常浪费时间。curl 支持断点续传。

  • -C <offset>: 指定偏移量。
  • -C -: 让 curl 自动推断偏移量(最常用)。

“`bash

如果 download.iso 下载了一半中断了,运行此命令继续下载

curl -C – -O http://example.com/download.iso
“`

5. 进度条与静默模式

-#:显示进度条

默认的进度表比较详细(包含速度、时间等)。如果您喜欢简单的 # 风格进度条,可以使用 -#

bash
curl -# -O http://example.com/large-file.zip

-s:静默模式 (Silent)

如果您在脚本中使用 curl,可能不希望看到任何进度或错误信息。

bash
curl -s -O http://example.com/script.sh

组合技巧:如果出错了想看报错,但平时想静默,可以使用 -sS (Silent but Show errors)。

bash
curl -sS -O http://example.com/file.txt

6. 限速下载:--limit-rate

为了避免下载任务占满所有带宽,影响其他服务,可以限制下载速度。

“`bash

将下载速度限制在 200k/s

curl –limit-rate 200k -O http://example.com/large-file.iso
“`

7. 添加认证与 Headers

某些下载需要身份验证或特定的 Header。

Basic Auth

“`bash

使用用户名 user 和密码 pass

curl -u user:pass -O http://example.com/secure-file.zip
“`

自定义 Header

例如模拟浏览器 UA 或添加 API Token。

bash
curl -H "Authorization: Bearer my_token" -H "User-Agent: MyClient/1.0" -O http://api.example.com/data.json

8. 调试连接:-v

如果下载失败,想知道发生了什么(DNS 解析、握手、Header 发送等),使用 -v (verbose) 开启详细模式。

bash
curl -v http://example.com

总结:常用命令速查表

场景 命令示例
指定文件名保存 curl -o filename.ext URL
使用原文件名保存 curl -O URL
跟随重定向(推荐) curl -L -O URL
断点续传 curl -C - -O URL
静默下载(用于脚本) curl -sS -O URL
限速下载 curl --limit-rate 1M -O URL

掌握这些参数,您基本可以应对绝大多数文件下载场景。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部