【Mac】ファイルリストになっているものを階層をそのままにダウンロードする方法


使い所

Mac の Terminal で curl を使ってダウンロードします。
ダウンロードしたい画像がたくさんある時に重宝します。
Windows 使ってた時は Irvine でダウンロードしてきてたんですけど、macになかったのでこの方法で行なっています。

  • 開発環境にファイル一式ないけど、勝手に取ってきて...!とか言われた時に。
  • 本番にはあるけど、開発環境で画像のリンク切れとかで、chromeのconsoleとか見ると、404がリストででるので、それを一気にダウンロードしたりしたいとき

まずは取得したいファイルのURLリストが必要です

例えばこのようなファイルリストがあるとします

https://www.hoge.jp/img/movie/a.png
https://www.hoge.jp/img/music/b.jpg
https://www.hoge.jp/img/technology/c.jpg
・
・
・

コレらをまとめてダウンロードをするという用途です。

curlコマンドとは?

さまざまなプロトコルに対応したデータを転送するためのコマンド。アップロードやダウンロードができるコマンド。

手順

Terminal でファイルを集めたいフォルダに cd します

ex.)

cd /Users/ユーザー名/ダウンロードして集めたいフォルダ

リストを curl でコマンドを作り Terminal で実行

以下のようなコマンドです。

curl --create-dirs -o img/movie/a.png https://www.hoge.jp/img/movie/a.png
curl --create-dirs -o img/music/b.jpg https://www.hoge.jp/img/music/b.jpg
curl --create-dirs -o img/technology/c.jpg https://www.hoge.jp/img/technology/c.jpg
・
・
・

実行すると以下のような構造でダウンロードができます。

/Users/ユーザー名/ダウンロードして集めたいフォルダ/img/movie/a.png
/Users/ユーザー名/ダウンロードして集めたいフォルダ/img/music/b.jpg
/Users/ユーザー名/ダウンロードして集めたいフォルダ/img/technology/c.jpg

curl コマンドのオプションについて補足

さまざまなオプションがありますが上記で使っているものだけ補足

  • -o ファイル名 保存するファイル名
  • --create-dirs -o ディレクトリ名/ファイル名 「-o」でディレクトリを指定した際、そのディレクトリがない場合は作成する

Tips

私の場合はエクセルでこのようなリストを作って、

範囲コピってエディタに貼り付けて、 ¥t (\t だったり) 正規表現置換でタブスペースを取り除いてリストを作成します。
このリストを作るのが多少面倒っちゃ面倒なんですが、100ファイルくらい持ってくる必要がある時はリストを作る方が早いので。