处理重定向
curl 命令很聪明,因为它可以跟随重定向。
我们所要做的就是使用 -L 开关,如下所示:
curl -OL
在后台运行'curl'
默认情况下,curl 命令会显示一个进度条,告诉我们还剩多少传输以及传输了多少数据。
如果我们只想在没有进度条的情况下运行命令,则需要在静默模式下运行它。
然后将其作为后台命令运行。
要静默运行命令,请使用 -s 开关:
curl -s -O
要在后台执行命令,请使用与号,如下所示:
curl -s -O &
在没有进度条的情况下运行 curl 命令更加精简,但我们不知道传输需要多长时间或者预计完成时间。
curl 命令使用一系列常见协议(包括 HTTP、HTTPS、FTP 和 SMB)通过网络或者 Internet 传输文件。
使用它来访问 FTP 站点、发送电子邮件、连接到 SAMBA 地址、上传和下载文件以及相关任务。
curl 命令有很多参数。
我们可以在 curl 手册页上看到这些参数的完整列表。
将“curl”的内容定向到文件
当我们下载 ISO 镜像等对象时,请将其发送到文件而不是标准输出。
要将内容保存到文件,请按如下方式指定 -o 开关:
curl -o
要下载基本命令用法部分中链接的页面,请输入以下命令:
curl -o google.htm http://www.google.com
文件下载后,在编辑器或者由文件类型确定的默认程序中打开它。
我们可以使用 -O 开关进一步简化,如下所示:
curl -O http://www.google.com/index.html
此开关使用 URL 的文件名部分并使其成为保存 URL 的文件名。
-o 和 -O 开关必须引用特定文件;它们不能一般指向文件夹或者顶级 URL。
在这种情况下,curl 命令会报告无长度错误。
基本的“curl”命令用法
在其基本形式中,curl 将网页内容下载到终端窗口。
curl http://www.google.com
从 FTP 服务器下载文件
curl 命令处理的不仅仅是 HTTP 文件传输。
它可以处理 FTP、GOPHER、SMB、HTTPS 和其他格式。
要从 FTP 服务器下载文件,请使用以下命令:
curl -u user:password -o
如果我们将文件名指定为 URL 的一部分,它将下载该文件,但如果我们指定一个文件夹的名称,它将返回一个文件夹列表。
使用 curl 通过使用以下命令将文件上传到 FTP 服务器:
curl -u user:password -T
文件名和使用与下载多个 HTTP 文件相同的模式匹配。
使用“curl”下载多个 URL
以最简单的形式,通过按顺序指定多个 URL 同时下载它们:
curl -O http://www.mysite.com/page1.html -O http://www.mysite.com/page2.html
要下载具有通用命名模式的大量文件,请使用方括号提供范围。
例如,要获取后缀为 1 到 100 的图像文件,请指定以下内容:
curl -O http://www.mysite.com/images/image[1-100].jpg
使用大括号指定具有相似格式的多个站点。
例如,要下载 www.google.com 和 www.bing.com 的索引页面,请使用以下命令:
curl -O http://www.{google,bing}.com
shell 可能会根据需要重写这些命令。
显示进度
默认情况下,curl 命令在下载 URL 时返回以下信息:
- Total % : 总传输完成的百分比。
- 总字节数:传输的总大小(以字节为单位)。
- Received/Transferred % : 传输完成的百分比。
- Received/Transferred bytes : 下载的字节数。
- 平均下载速度:以每秒字节数为单位的下载速度。
- 平均上传速度:以每秒字节数为单位的上传速度。
- 总时间:完成当前操作的估计时间。
- 花费的时间:自传输开始以来经过的时间。
- 剩余时间:完成传输的预期时间。
- 当前速度:以每秒字节数为单位的当前传输速度。
如果我们更喜欢简单的进度条,请按如下方式指定 -# 开关:
curl -# -O