宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述如何在GitHub正确地使用 Curl 下载文件?相关的知识,希望能为你提供帮助。
Curl是在 Linux 终端中下载文件的绝佳工具。
下载与原始文件同名的文件的常用语法非常简单:
curl -O URL_of_the_file
这在大多数情况下都有效,但是,您会注意到,有时当您从 GitHub 或 SourceForge 下载文件时,它不会获取正确的文件。
例如,我试图以 tar gz 格式下载 archinstall 脚本。这些文件位于发布页面上。
如果我在浏览器中打开这个源代码链接,它会得到 .tar.gz 格式的源代码。
但是,如果我使用终端使用 curl 命令下载相同的文件,我会得到一个不正确存档格式的小文件。
tar -zxvf v2.4.2.tar.gz gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
当我运行 file 命令以了解确切的文件类型时,它告诉我它是一个 html 文档。
file v2.4.2.tar.gz
v2.4.2.tar.gz: HTML document, ASCII text, with no line terminators
文章图片
HTML 文档而不是存档 zip 或 tarball?问题出在哪里?让我告诉你快速修复。
使用 curl 正确下载存档文件这里的问题是您拥有的 URL 重定向到实际的存档文件。为此,您需要使用其他选项。
curl -JLO URL_of_the_file
选项可以按任何顺序排列。
这是基于 curl 命令手册页的选项的快速说明。
- J:此选项告诉 -O, --remote-name 选项使用服务器指定的 Content-Disposition 文件名,而不是从 URL 中提取文件名。
- L:如果服务器报告请求的页面已移动到不同的位置(用 Location: 标头和 3XX 响应代码指示),此选项将使 curl 在新位置重做请求。
- O:使用此选项,您无需指定下载的输出文件名。
文章图片
额外提示:您需要登录吗?这适用于公共文件,但是,如果您尝试从私有存储库或 GitLab 下载文件,那么您可能会看到有关重定向到登录页面的消息。
<
html>
<
body>
You are being <
a rel="nofollow" href="https://gitlab.com/users/sign_in">
redirected<
/a>
.<
/body>
<
/html>
【如何在GitHub正确地使用 Curl 下载文件()】在这种情况下,请为 API 令牌提供 -H 选项。
推荐阅读
- 数据治理一体化实践之体系化建模
- 如何在 Linux 中使用 ripgrep (rg) 命令()
- 通过 SSH 在远程和本地系统之间传输文件的 4 种方法
- linux用户及密码的存储和校验
- C# TCP通讯客户端源码
- VB.net Socket Udp收发数据包示例源码
- [恶意代码分析]恶意代码种类以及分析环境介绍
- 澳大利亚科学家开发出可用于脑机接口的新型碳基生物传感器
- ZooKeeper源码阅读心得分享+源码基本结构+源码环境搭建