wgetでGitHubのファイルをダウンロードする方法

Ruby on Rails のユーザ管理用gemのdeviseを日本語化するときに必要な、日本語用ymlファイルの準備がちょっとでも簡単にならないかと期待して。

状況

設計図共有サイトGitHub上に格納されているファイルを、任意のディレクトリにダウンロードしたい。 ファイル内容のコピー&ペーストではなく、かっこよくwgetコマンドでやりたい。

環境

Ubuntu16.4

手順概要

GitHubでダウンロードしたいファイルのページを開き、「Raw」というボタンをクリックして、開いたページのURLを用いてwgetを行いましょう。

参考サイト
GitHub - githubからファイル単体をclone(DL)できる?(14124)|teratail

手順詳細

① [ブラウザ上操作]ダウンロードしたいGitHubのファイルのページを開く
例として、ユーザ管理用Gemのdeviseの日本語化に必要なファイルのページを開きました。 f:id:Tiratom:20180616155310p:plain
(間違えてイタリア語のページの画像になってしまったのはご愛敬。)
ここまでファイルを開いたなら、そのままコピーしたい部分を選択・コピー・ペーストしてしまえばいいのですが、かっこよくwgetコマンドで決めてやるぜというのが今回の記事です。



②[ブラウザ上操作]「Raw」ボタンをクリックする
「Raw」ボタンをクリックすると、GitHubのファイルの中身そのものが表示されるページに遷移します。 遷移したページのURLをコピーしましょう。 (結局コピーするんかい!という突込みはさておき・・・)

※もちろん、画面遷移をさせずに右クリックして「リンクをコピー」でもOK!

③ [コンソール上操作]wgetコマンドをたたきます
コンソールに移動して、以下の文法にのっとってコマンドを実行します。

$ wget 【ダウンロードしたいファイルのURL】 -P 【ダウンロードしたファイルを格納したい場所】

例)

$ wget https://gist.githubusercontent.com/kaorumori/7276cec9c2d15940a3d93c6fcfab19f3/raw/a8c4f854988391dd345f04ff100441884c324f2a/devise.ja.yml -P config/locales/



④ [任意の方法で実施]実際にファイルがダウンロードできたか確認する
先ほどwget実行時に指定したディレクトリ(フォルダ)の中を見て、うまくダウンロードできたか見てみましょう。
きっとあるはずです。
お目当ての devise.ja.yml が。

wgetとは

$ man wget をして得られた情報より・・・

ノンインタラクティブダウンローダーだそうです。
ノンインタラクティブだから何なんだというと、バックグラウンドでユーザーの介入なしでダウンロードしてくれるそうです。
また、階層を維持した状態でCSSファイル等もダウンロードしてくれるので、ダウンロードしたコンテンツをオフライン環境でオンライン時と同様に表示させるといったこともできるそうです。
更には、不安定なネットワーク環境での使用も想定されており、ダウンロード失敗時にはリトライをしてくれるとか。
でも、CRL(証明書失効リスト)には対応していないので、HTTPS通信をしている場合にはコネクションがサイトオーナーによって断ち切られる可能性もあるようです。(ちょっとここの詳細については僕の理解が及んでいないです・・・)

また、今回使用したオプション -P によって、ダウンロード先のディレクトリを指定できるようです。未指定の場合は、wgetを実行した時にいたディレクトリがダウンロード先となるようです。

そのほか

僕がざっと見た限り、ネット上のdeviseの日本語化の方法の説明記事では、単純なコピペ利用とwget利用だとコピペ利用のほうが多いイメージがありました。
確かにこの双方の手順を考慮すると、単純なコピペが楽かな・・・?
でもまあ、wgetを使ってみるいい機会だったかな。