wgetを使用してGitHubプロジェクトのすべてのファイル(raw形式)をダウンロードするには? [繰り返し]

wgetを使用してGitHubプロジェクトのすべてのファイル(raw形式)をダウンロードするには? [繰り返し]

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

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作業ディレクトリを複製する場合は、$WEBROOTWebサーバーがそのディレクトリを表示してファイルを提供できるように、そのディレクトリがあなたのディレクトリの下にある必要があります。

より長いバージョン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

また、これは可能な限りディレクトリ深度のファイルでのみ機能することに注意してください。より多くのディレクトリがある場合は、どのようにドリルダウンできるかを知ることができます。しかし、これによって頭が痛み始めました。

関連情報