如何使用cURL下载文件

您所在的位置:网站首页 怎么用360下载视频到本地 如何使用cURL下载文件

如何使用cURL下载文件

2024-07-14 19:31:01| 来源: 网络整理| 查看: 265

客户端 URL 或 cURL 是用于在系统之间传输数据的库和命令行实用程序。 它支持许多协议,并且倾向于默认安装在许多类 Unix 操作系统上。 由于它的普遍可用性,当您需要将文件下载到本地系统时,它是一个很好的选择,尤其是在服务器环境中。

在本教程中,您将使用 curl 命令从 Web 服务器下载文本文件。 您将查看其内容,将其保存在本地,并告诉 curl 如果文件已移动,则遵循重定向。

从 Internet 下载文件可能很危险,因此请确保您是从信誉良好的来源下载的。 在本教程中,您将从 DigitalOcean 下载文件,并且不会执行您下载的任何文件。

启动交互式终端!

目录 1 第 1 步 — 获取远程文件 2 保存远程文件 3 第 2 步 — 使用特定文件名保存远程文件 4 第 3 步 - 跟随重定向 5 结论 第 1 步 — 获取远程文件

开箱即用,没有任何命令行参数,curl 命令将获取文件并将其内容显示到标准输出。

让我们从 Digitalocean.com 下载 robots.txt 文件试一试:

curl https://www.digitalocean.com/robots.txt

您将在屏幕上看到文件的内容:

OutputUser-agent: * Disallow: sitemap: https://www.digitalocean.com/sitemap.xml sitemap: https://www.digitalocean.com/community/main_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/questions_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/users_sitemap.xml.gz

给 curl 一个 URL,它将获取资源并显示其内容。

保存远程文件

获取文件并显示其内容一切都很好,但是如果您想将文件实际保存到系统中怎么办?

要将远程文件保存到本地系统,文件名与您从中下载的服务器相同,请添加 --remote-name 参数,或使用 -O 选项:

curl -O https://www.digitalocean.com/robots.txt

您的文件将下载:

Output % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 286 0 286 0 0 5296 0 --:--:-- --:--:-- --:--:-- 5296

curl 不显示文件的内容,而是显示基于文本的进度表,并将文件保存为与远程文件名称相同的名称。 您可以使用 cat 命令检查内容:

cat robots.txt

该文件包含您之前看到的相同内容:

OutputUser-agent: * Disallow: sitemap: https://www.digitalocean.com/sitemap.xml sitemap: https://www.digitalocean.com/community/main_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/questions_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/users_sitemap.xml.gz

现在让我们看看为下载的文件指定一个文件名。

第 2 步 — 使用特定文件名保存远程文件

您可能已经有一个与远程服务器上的文件同名的本地文件。

为避免覆盖同名的本地文件,请使用 -o 或 --output 参数,后跟您要将内容保存到的本地文件的名称。

执行以下命令,将远程的 robots.txt 文件下载到本地命名为 do-bots.txt 的文件中:

curl -o do-bots.txt https://www.digitalocean.com/robots.txt

您将再次看到进度条:

Output % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 286 0 286 0 0 6975 0 --:--:-- --:--:-- --:--:-- 7150

现在使用 cat 命令显示 do-bots.txt 的内容以验证它是您下载的文件:

cat do-bots.txt

内容是一样的:

OutputUser-agent: * Disallow: sitemap: https://www.digitalocean.com/sitemap.xml sitemap: https://www.digitalocean.com/community/main_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/questions_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/users_sitemap.xml.gz

默认情况下,curl 不遵循重定向,因此当文件移动时,您可能无法获得预期的结果。 让我们看看如何解决这个问题。

第 3 步 - 跟随重定向

到目前为止,所有示例都包含包含 https:// 协议的完全限定 URL。 如果您碰巧尝试获取 robots.txt 文件并且只指定了 www.digitalocean.com,您将看不到任何输出,因为 DigitalOcean 将请求从 http:// 重定向到 https:// :

您可以使用 -I 标志来验证这一点,该标志显示请求标头而不是文件的内容:

curl -I www.digitalocean.com/robots.txt

输出显示 URL 已被重定向。 输出的第一行告诉你它被移动了,Location 行告诉你在哪里:

OutputHTTP/1.1 301 Moved Permanently Cache-Control: max-age=3600 Cf-Ray: 65dd51678fd93ff7-YYZ Cf-Request-Id: 0a9e3134b500003ff72b9d0000000001 Connection: keep-alive Date: Fri, 11 Jun 2021 19:41:37 GMT Expires: Fri, 11 Jun 2021 20:41:37 GMT Location: https://www.digitalocean.com/robots.txt Server: cloudflare . . .

您可以使用 curl 手动发出另一个请求,或者您可以使用 --location 或 -L 参数告诉 curl 重做对新位置的请求每当它遇到重定向。 试试看:

curl -L www.digitalocean.com/robots.txt

这次你看到了输出,因为 curl 遵循了重定向:

OutputUser-agent: * Disallow: sitemap: https://www.digitalocean.com/sitemap.xml sitemap: https://www.digitalocean.com/community/main_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/questions_sitemap.xml.gz sitemap: https://www.digitalocean.com/community/users_sitemap.xml.gz

您可以将 -L 参数与上述一些参数结合起来,将文件下载到本地系统:

curl -L -o do-bots.txt www.digitalocean.com/robots.txt

警告:网上很多资源会要求你使用curl下载脚本并执行。 在运行已下载的任何脚本之前,最好在使它们可执行并运行它们之前检查它们的内容。 使用 less 命令查看代码以确保它是您想要运行的东西。

结论

curl 让您从远程系统快速下载文件。 curl 支持许多不同的协议,还可以发出更复杂的 Web 请求,包括与远程 API 交互以发送和接收数据。

您可以通过运行 man curl 查看 curl 的手册页来了解更多信息。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭