web-dev-qa-db-ja.com

リダクションされたときに正しい名前のファイルをwgetする方法は?

そのため、しばらくの間Googleとスーパーユーザーで検索(およびmanページのスキャン)を行った後、私は(私が思うに)単純なものに対する答えを見つけることができませんでした。

ここに行けば:

http://www.vim.org/scripts/script.php?script_id=2340

そしてテーマをダウンロードしてみてください。

http://www.vim.org/scripts/download_script.php?src_id=9750

そのようです:

wget http://www.vim.org/scripts/download_script.php?src_id=9750

おそらくdownload_script.php?src_id=9750というファイルになってしまうでしょう。

しかし、私はそれをmolokai.vimと呼んで欲しいのですが、これはブラウザを使ってこのファイルをダウンロードした場合に起こることです。

目的の効果を得るためにwgetに指定する必要があるオプションは何ですか?

Curlと同等のコマンドでも大丈夫です。

115
audio.zoom
-O file
--output-document=file

文書は適切なファイルに書き込まれませんが、すべてが一緒に連結されてファイルに書き込まれます。 -をファイルとして使用すると、文書は標準出力に印刷され、リンク変換は無効になります。 (文字通り./-という名前のファイルに印刷するには-.を使用してください)

そう、

wget -O somefile.extension http://www.vim.org/scripts/download_script.php?src_id=9750

あるいは、あなたのバージョンでサポートされているのであれば、 - content-dispositionオプションを使ってwgetを取得することもできます。

wget --content-disposition http://www.vim.org/scripts/download_script.php?src_id=9750

Manページによる警告

--content-disposition

これがonに設定されていると、 "Content-Disposition"ヘッダの実験的(完全に機能的ではない)サポートが有効になります。これは現在、 "HEAD"要求のためにサーバーへの余分なラウンドトリップにつながる可能性があり、それが現在デフォルトで有効にされていない理由であるいくつかのバグの影響を受けることが知られています。

このオプションは、 "Content-Disposition"ヘッダを使ってダウンロードされたファイルの名前を表すファイルをダウンロードするCGIプログラムの中には便利です。

を使用して、curlと同じ自動化された動作を実現できます。

curl -JLO http://www.vim.org/scripts/download_script.php?src_id=9750

-Oはリモート名を使用し、-JはURLではなくcontent-dispositionヘッダーからその名前を取得するように-Oに強制し、必要に応じて-Lがリダイレクトに従います。

158
EightBitTony

Wgetを使うとこれができます:

wget --trust-server-names <url> 

サーバーから与えられた最後のファイル名を使用してファイルを保存します。

73

aria2c を使うこともできます - それはContent-Dispositionヘッダでうまく動作するようです。

3
dkam

単にfyi curlがうまくリダイレ​​クトするので、次のものを使うとうまくいくはずです。私はあなたが探しているもののためにと思います。

curl -o molokai.vim http://www.vim.org/scripts/download_script.php?src_id=9750

0
Dan M.

次のように動作しました:

curl -o molokai.vim http://www.vim.org/scripts/download_script.php?src_id=9750

wget -O somefile.extension http://www.vim.org/scripts/download_script.php?src_id=9750

(大文字小文字を(すなわち、wget -O)から(wget -o)に変更しました。

0
Zahid Hussain