如何使用 wget 下载 GitHub 项目的所有文件(原始形式)?

如何使用 wget 下载 GitHub 项目的所有文件(原始形式)?

如何使用下载GitHub项目的所有文件wget

所有文件都应以其原始形式下载。

已经尝试过:

wget -P ~/ https://raw.githubusercontent.com/u/p/b/*
wget -P ~/ https://raw.githubusercontent.com/u/p/b/{*}
wget -P ~/ --accept-regex urlregex https://raw.githubusercontent.com/u/p/b/*
wget -P ~/ --recursive https://raw.githubusercontent.com/u/p/b/

这与wget -P ~/ https://raw.githubusercontent.com/u/p/b/{file1,file2...}

u=用户,p=项目,b=分支。

答案1

这是一种方法:

wget -P ~/ https://github.com/u/p/a/master.zip
unzip ~/master.zip

这是另一个:

cd
wget https://github.com/u/p/a/master.zip
unzip master.zip

u=用户,p=项目,a=存档。

答案2

简短版本:你不能。

较长版本 1:如果您尝试克隆 git 工作目录,则该目录需要位于您的 下$WEBROOT,以便您的 Web 服务器可以查看并提供文件。

更长的版本 2:如果您尝试克隆 git存储库,这些文件实际上并不以原始形式存在。它们是项目对象数据库中的条目。

最好的主意:

git clone http://...

答案3

这在存储库上对我有用,尽管它需要一个名为的工具json(类似于 jq)并且我不建议这样做git clone

#!/bin/bash

MY_REPO='/jessebutryn/wtfisbash'

GIT_API='https://api.github.com/repos'
GIT_URI='/contents'
CURL_OPTS=(
    -X
    GET
)

REPO_DIRS=($(curl "${CURL_OPTS[@]}" "${GIT_API}${MY_REPO}${GIT_URI}" \
    | json -a -c "type === 'dir'" name))
REPO_FILES=($(curl "${CURL_OPTS[@]}" "${GIT_API}${MY_REPO}${GIT_URI}" \
    | json -a -c "type === 'file'" download_url))

for dir in "${REPO_DIRS[@]}"; do
    REPO_FILES+=($(curl "${CURL_OPTS[@]}" "${GIT_API}${MY_REPO}${GIT_URI}/${dir}" \
        | json -a -c "type === 'file'" download_url))
done

for file in "${REPO_FILES[@]}"; do
    wget -P ./ "${file}"
done

我还应该注意,这仅适用于深度达一个目录的文件。如果你有更多的目录,我相信你可以弄清楚如何用这个深入研究它们——但这开始让我头疼。

相关内容