wget

wget コマンドはインターネット上に置かれているファイルをローカルにダウンロードするときに利用する。指定したディレクトリ下にあるすべてのファイルを再帰的にダウンロードしたり、指定した拡張子を持つファイルをダウンロードしたり、ダウンロードが異常終了した場合に再開したりする機能を備えている。似た機能を持つコマンドとして curl などがある。

ファイル名を指定してダウンロード

最も一般的な使い方として、wget コマンドの後にダウンロードしたいファイルの URL を入れて実行する。

wget ftp://ftp.ensembl.org/pub/release-68/fasta/homo_sapiens/dna/Homo_sapiens.GRCh37.68.dna.toplevel.fa.gz

拡張子を指定してダウンロード

指定したダウンロード先がディレクトリであり、その中に様々な拡張子をもつファイルがあるとき、特定の拡張子を持ったファイルだけをダウンロードする場合は -A オプションを利用する。例えば、指定先のディレクトリに含まれているファイルのうち、「.seq.gz」で終わるファイルをダウンロードするときは、-A .seq.gz のように指定する。

wget -A .seq.gz ftp://ftp.ncbi.nih.gov/genbank/

階層のレベルを指定してダウンロード

ダウンロードしたいファイルが複数のサブディレクトリに保存されている場合は、サブディレクトリの階層を指定して回帰的にダウンロードすることができる。階層の指定は -r オプションを利用し、回帰は -l オプションを利用する。例えば、

     ftp://ftp.ddbj.nig.ac.jp/mirror_database/pdb/distr/英数字/PDBファイル

のように保存されている PDB ファイルをダウンロードしたい場合は、ダウンロード URL を distr まで指定して、階層を 2 に指定して回帰しながらダウンロードすればよい。

wget -l 2 -r ftp://ftp.ddbj.nig.ac.jp/mirror_database/pdb/distr/

上のコマンドでファイルを回帰しながらダウンロードすると、ダウンロードしたファイルは、サーバーと同じディレクトリ構造が保てられる。もし、ダウンロードしたファイルをすべて 1 つのディレクトリ内に保存したい場合は、 -nd -P オプションをつける。例えば、すべての PDB ファイルを「./data」ディレクトリにダウンロードしたい場合は次のようにする。

wget -l 2 -r -nd -P ./data ftp://ftp.ddbj.nig.ac.jp/mirror_database/pdb/distr/

途中からダウンロードの再開

ダウンロード中で何らかの原因によってダウンロードが中断された場合、レジューム機能を利用することで、途中から再開することができる。オプションに -c を付ける。

# ダウンロード
wget ftp://ftp.ensembl.org/pub/release-68/fasta/homo_sapiens/dna/Homo_sapiens.GRCh37.68.dna.toplevel.fa.gz

# 異常中断

# ダウンロードの再開
wget -c ftp://ftp.ensembl.org/pub/release-68/fasta/homo_sapiens/dna/Homo_sapiens.GRCh37.68.dna.toplevel.fa.gz

認証付きウェブサイトからファイルのダウンロード

Basic 認証が導入されているウェブサイトからファイルをダウンロードすると、認証を行う必要がある。wget を実行するとき、ユーザー名とパスワードを与えることで認証を行うことが可能である。

wget --user=NAME --password=PASSWORD ftp://download_url/file_name.html

入力画面上にパスワードを表示させたくない場合は、次のように、実行時にパスワードを入力する方法もある。

wget --user=NAME --ask-password ftp://download_url/file_name.html