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웹 서버가 해당 디렉터리를 보고 파일을 제공할 수 있도록 해당 디렉터리가 귀하의 디렉터리 아래에 있어야 합니다.

더 긴 버전 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

또한 이는 최대 한 디렉터리 깊이의 파일에만 작동한다는 점에 유의해야 합니다. 더 많은 디렉토리가 있다면 이를 통해 어떻게 드릴다운할 수 있는지 알 수 있을 것입니다. 하지만 이로 인해 머리가 아프기 시작했습니다.

관련 정보