なぜ wget
は この名前を選びますか?
残念ながら、wget
あなたが指示しない限り、あなたがダウンロードしたいものについて何も仮定しません。ファイルが画像、ドキュメント、圧縮ファイルなどであるかどうかは気にしません。
ファイルは、URL の末尾にあるものとして保存されます。つまり、最後のスラッシュから URL の末尾までです。あなたの場合、それは .gif?id=2
です .実際のファイル拡張子の後の部分 (.gif
) が URL に含まれていますが、これは HTTP クエリ パラメータです。 wget
の場合 ただし、出力ファイル名は決定されます。
別のファイル名を設定するにはどうすればよいですか?
wget
に出力ファイル名を指定したい場合 、 -O
を追加します (大文字の O) オプション:
wget example.com/something.gif?id=2 -O 2.gif
これにより、デフォルトの動作がオーバーライドされ、ファイル名が 2.gif
に設定されます . -o
に注意してください (小文字) オプションは、ログ メッセージの出力ファイル名を指定します wget
そうしないと、シェルに出力される可能性があります。
最後に、--content-disposition
があります。 かもしれないオプション 適切なファイル名が設定されます。ただし、これはダウンロードしているサーバーが正しいヘッダー情報を送信するかどうかに完全に依存します:
このオプションは、Content-Disposition ヘッダーを使用してダウンロードしたファイルの名前を記述する一部のファイル ダウンロード CGI プログラムに役立ちます。
このオプションは現在まだ実験的なものとしてマークされているため、デフォルトでは有効になっていません。
使用しているツールのマンページを読んで、その動作を理解することを強くお勧めします。 man wget
と入力するだけです 特に提供されるオプションをよく読んでください。
また、@Indrek があなたの質問に対するコメントに書いたことに対処するには、タイプミスがあり、GIF ファイルを .png
というファイルにダウンロードするつもりはないと思います。 — 拡張子を変更するだけでは変わりません 自動的に PNG にします。 GIF と PNG は異なるエンコーディングを使用するため、これらの形式間で変換するには、あらゆる種類の画像変換ツールを使用する必要があります。ただし、この変換はロスレスであるため、ファイルを「間違った」形式でダウンロードして後で変換しても害はありません。
コマンドラインオプション --content-disposition
があります これにより、ウェブサイトが正しいヘッダーを提供している場合、ファイルは正しい名前で保存されます。
私のdebianスクイーズボックスには、オプションが「実験的」であると書かれていますが...
これは単純に、パスを見て、?id=2 で終わるためです。したがって、このように保存されます。ファイルを移動するか、-O パラメーターを使用してファイル名を定義できます。