GNU/Linux >> Linux の 問題 >  >> Linux

画像を wget すると、画像ではなくファイルが返されるのはなぜですか?

なぜ 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 パラメーターを使用してファイル名を定義できます。


Linux
  1. メタデータファイルがチェックサムと一致しません– YUMエラー!

  2. `md5sum`がインターネットと同じハッシュを与えないのはなぜですか?

  3. 次の方法でコアファイルの制限サイズが変更されないのはなぜですか?

  1. Bash翻訳ファイルにすべてのエラーテキストが含まれていないのはなぜですか?

  2. Linux –Setuidが機能しないのはなぜですか??

  3. Linux –ロケールEs_mxは機能するがEsは機能しないのはなぜですか?

  1. なぜ`exit&`が機能しないのですか?

  2. Python の open() は、ファイルが存在しない場合、ファイルを作成しません。

  3. MAP_GROWSDOWN マッピングが成長しないのはなぜですか?