wgetを使用して特定の名前のファイルを取得する方法は?

wgetを使用して特定の名前のファイルを取得する方法は?

私はAmazon Linuxでbashを使用しています。

ブラウザで次の URL にアクセスすると、https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US、firefox-56.0.1.tar.bz2ファイルを取得します。ただし、wgetを使用すると、ダウンロードしたファイルは同じファイルのように見えますが、タイトルに「index.html」が含まれています。だから私は努力しました

wget -r --no-parent --reject "index.html*" -nH --cut-dirs=7 "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US"

しかし、今はファイルはダウンロードされません。 wget(または他のコマンドラインツール)を使用してファイルをダウンロードし、ブラウザがURLにアクセスしたときと同じタイトルを持つようにするにはどうすればよいですか。

ベストアンサー1

この場合、ヘッダーに送信されたサーバー名を信頼しようとし、そのディレクティブがない場合はwgetURLのファイル名が使用されます。

wget "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US" --trust-server-names

もちろん、これを機能させるには、すべてのサーバーが転送/生成されるすべてのファイルのファイル名を送信する必要があります。一部のスクリプトはこれを行いません。その場合でも、実際にはファイル「index.html」が得られます。

-Oこの場合、出力オプションを使用して最後に必要なファイル名を指定するだけです。

wget "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US" -O latest-firefox.tar.bz2

もちろん、この部分が機能するには、ファイルの種類などを知る必要があります。

おすすめ記事