2021 更新 使用 wget 从 GitHub 下载并解压

2021 更新 使用 wget 从 GitHub 下载并解压

我正在尝试使用 Ubuntu 中的命令行从 GitHub 下载 .zip 文件。我wget在远程 Ubuntu 系统上使用命令。

我运行我想要下载的文件的地址栏链接在wget <link>哪里。它以 结尾。<link>archive.zip?ref=master

现在,当我执行命令时,它正在下载一个text/html类型为的文件,而不是.zip我想要的文件。

请告诉我如何获取作为参数给出的链接wget。现在,我只是复制按钮的链接地址(使用右键单击)并将其写入参数wget

答案1

如果您使用正确的 URL,它就可以工作。

对于 GitHub repo,有一个 zip 文件https://github.com/<user>/<repo>/archive/<branch>.zip,因此你可以使用以下命令下载它:

wget https://github.com/<user>/<repo>/archive/<branch>.zip

这将下载给定分支的压缩存储库。请注意,您还可以通过提交哈希替换分支。

使用 cURL

curl -L -O https://github.com/<user>/<repo>/archive/<branch>.zip

cURL 的-L标志遵循重定向 - 这是 wget 中的默认设置。-O由 Phil Gibbins 建议一条评论

下载 .tgz 而不是 .zip

您还可以使用以下命令下载 tarball:

wget https://github.com/<user>/<repo>/archive/<branch>.tar.gz

答案2

从我看到的评论来看,您实际上是在谈论 GitHub。

它不会这样工作,因为:

在 GitHub 上下载项目会导致 GitHub 服务器首先将你的项目打包为 zip,然后转发暂时的获取 zip 的链接..

此链接仅在一定时间内有效,然后 GitHub 将从其服务器中删除您的 zip 文件。

因此,您使用 wget 获得的只是 html 页面,它会在您的 zip 文件生成后立即转发给您。

按照建议使用

git clone http://github.com/<yourRepoLink> <optional local path where to store>

下载 git repo ...如果由于某种原因(例如将其转移给其他人)您明确需要它作为 zip,您仍然可以在克隆完成后打包它。

答案3

2021 更新 使用 wget 从 GitHub 下载并解压

还将扩展并删除存档。只需编辑 REPLACE_ 值,然后复制/粘贴

压缩

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.zip \
-O "${GH_REPO}-${GH_BRANCH}.zip" && \ 
unzip ./"${GH_REPO}-${GH_BRANCH}.zip" && \
rm ./"${GH_REPO}-${GH_BRANCH}.zip"

特格孜

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.tar.gz \
-O "${GH_REPO}-${GH_BRANCH}.tar.gz" && \
tar -xzvf ./"${GH_REPO}-${GH_BRANCH}.tar.gz" && \
rm ./"${GH_REPO}-${GH_BRANCH}.tar.gz"

答案4

我刚刚做了,但请确保你使用的链接正确,并且 URL 以*.zip类似以下内容结尾@Robin Métral上面说了。

我执行的具体步骤:

  1. 打开 GitHub 存储库。
  2. 右键单击下载 Zip链接,然后复制 URL。
  3. wget在终端中使用复制的 URL 。

我相信 GitHub 服务器会接受wget请求并将其视为与浏览器请求相同。

相关内容