我正在尝试使用 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上面说了。
我执行的具体步骤:
- 打开 GitHub 存储库。
- 右键单击下载 Zip链接,然后复制 URL。
wget
在终端中使用复制的 URL 。
我相信 GitHub 服务器会接受wget
请求并将其视为与浏览器请求相同。