使用 curl 正确下载 GitHub 文件
使用 curl 下载文件并保留其原始名称,最简单的语法是:
curl -O URL这条命令在多数情况下都很好用。然而,当从 GitHub 或 SourceForge 这类网站下载文件时,你可能会遇到问题:下载的文件并非你想要的那个。这通常是因为 URL 发生了重定向,指向了真正的下载地址。
正确的下载方式:处理重定向
为了解决这个问题,你需要告诉 curl 跟随重定向,并使用服务器提供的文件名。只需组合使用以下几个选项即可:
curl -JLO URL💡 提示:这些选项的顺序可以任意排列。
下面是这些选项的详细说明(基于 curl 的手册页):
-L(--location):如果服务器返回重定向响应(如 301 或 302),curl会自动跳转到新的地址继续请求。这是解决问题的关键。-J(--remote-header-name):让curl使用服务器在Content-Disposition头中指定的文件名,而不是从 URL 中提取。这对于获取正确的文件名(例如v1.2.3.tar.gz)至关重要。-O(--remote-name):将下载的文件保存到本地,并使用远程文件的名称。