![wget을 사용하여 GitHub 프로젝트의 모든 파일(원시 형식)을 다운로드하는 방법은 무엇입니까? [반복하다]](https://linux55.com/image/126916/wget%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20GitHub%20%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC(%EC%9B%90%EC%8B%9C%20%ED%98%95%EC%8B%9D)%EC%9D%84%20%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B0%98%EB%B3%B5%ED%95%98%EB%8B%A4%5D.png)
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
또한 이는 최대 한 디렉터리 깊이의 파일에만 작동한다는 점에 유의해야 합니다. 더 많은 디렉토리가 있다면 이를 통해 어떻게 드릴다운할 수 있는지 알 수 있을 것입니다. 하지만 이로 인해 머리가 아프기 시작했습니다.