wget
を使用してWebサイトからHTTP経由でファイルをダウンロードしようとしています。
私が使うとき:
wget http://abc/geo/download/?acc=GSE48191&format=file
index.html?acc=GSE48191
というファイルのみが表示されます。
私が使うとき:
wget http://abc/geo/download/?acc=GSE48191&format=file -o asd.rpm
asd.rpm
を取得しましたが、実際の名前でダウンロードしたいのですが、ダウンロードしたファイルの名前を手動で変更したくありません。
wget --content-disposition 'https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'
ダウンロードするファイルはtar
アーカイブ(バイナリファイル)で、Webサーバーからのダイナミックリンクによって提供されます。 wget
は通常、使用しているURLの一部を使用してファイルを保存しますが、この場合は、REST APIエンドポイント(または同様の))なので、名前は扱いにくい(それでも有効な名前であり、ファイルの内容は同じになる)。
ただし、この場合、サーバーは実際のファイル名を含む "Content Disposition"ヘッダーを提供します。wget
は、--content-disposition
オプションを使用する場合に使用できます。このオプションは、私のマニュアルでwget
について「実験的」とマークされています。
また、シェルが&
および?
文字を解釈しないように、URLを引用符で囲む必要があります。
curl
を使用する同等のもの:
curl -J -O 'https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'
または、同等の長いオプションを使用します。
curl --remote-header-name --remote-name 'https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'
ファイルをダウンロードしたら、解凍する必要があります。
tar -xvf GSE48191_RAW.tar
この特定のアーカイブの作成方法により、これによりアーカイブのファイルがcurrentディレクトリに解凍されます(新しいディレクトリを作成し、そこにアーカイブを移動して解凍することをお勧めします)。このアーカイブ内のファイルは、gzip
-圧縮されたCEL
ファイルです。
シェルは文字の通常の解釈を行います。特に?
をワイルドカード(ここでは関係ありません)として解釈し、&
を「バックグラウンドに配置」して解釈します。シェルの応答はダイレクトコマンドとは異なるため、後者に気づくはずです。
だからあなたは引用する必要があります:
wget 'http://abc/geo/download/?acc=GSE48191&format=file'