GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum gibt mir das Wgeting eines Bildes eine Datei und kein Bild?

Warum funktioniert wget diesen Namen wählen?

Leider wget wird keine Vermutungen darüber anstellen, was Sie herunterladen möchten, es sei denn, Sie sagen es ihm. Dabei spielt es keine Rolle, ob es sich bei Ihrer Datei um ein Bild, ein Dokument, eine gezippte Datei usw. handelt.

Die Datei wird so gespeichert, wie die URL endete – also alles vom letzten Schrägstrich bis zum Ende der URL. In Ihrem Fall ist das .gif?id=2 . Der Teil nach der eigentlichen Dateiendung (.gif ) ist in der URL enthalten, aber es ist ein HTTP-Abfrageparameter. Für wget , bestimmt jedoch den Namen der Ausgabedatei.

Wie kann ich einen anderen Dateinamen festlegen?

Wenn Sie einen Ausgabedateinamen für wget angeben möchten , fügen Sie die -O hinzu (großes O) Option:

wget example.com/something.gif?id=2 -O 2.gif

Dies überschreibt das Standardverhalten und setzt den Dateinamen auf 2.gif . Beachten Sie, dass -o Die Option (Kleinschreibung) gibt den Ausgabedateinamen für alle Protokollmeldungen wget an könnte andernfalls an die Shell ausgegeben werden.

Schließlich gibt es noch die --content-disposition Option, die vielleicht dazu führen, dass der richtige Dateiname gesetzt wird. Aber das hängt ganz davon ab, von welchem ​​Server Sie die richtigen Header-Informationen senden:

Diese Option ist nützlich für einige CGI-Programme zum Herunterladen von Dateien, die Content-Disposition-Header verwenden, um zu beschreiben, wie der Name einer heruntergeladenen Datei lauten soll.

Die Option ist derzeit noch als experimentell gekennzeichnet und daher standardmäßig nicht aktiviert.

Ich empfehle Ihnen dringend, die Manpage der Tools zu lesen, die Sie verwenden, um ihr Verhalten zu verstehen. Geben Sie einfach man wget ein und lesen Sie es durch, insbesondere die Optionen, die es bietet.

Um auch auf das einzugehen, was @Indrek im Kommentar zu Ihrer Frage geschrieben hat:Ich nehme an, Sie haben dort einen Tippfehler und wollen keine GIF-Datei in eine Datei mit dem Namen .png herunterladen — nur die Erweiterung zu ändern wird nicht automatisch ein PNG daraus machen. GIF und PNG verwenden unterschiedliche Codierungen, und Sie müssen ein beliebiges Bildkonvertierungstool verwenden, um zwischen diesen Formaten zu konvertieren. Diese Konvertierung erfolgt jedoch verlustfrei, sodass es nicht schaden kann, die Dateien im "falschen" Format herunterzuladen und später zu konvertieren.


Es gibt die Befehlszeilenoption --content-disposition was - wenn die Website einen korrekten Header liefert - dazu führen sollte, dass Ihre Datei unter dem richtigen Namen gespeichert wird.

Meine Debian-Quetschbox sagt jedoch, dass die Option "experimentell" ist ...


Dies liegt einfach daran, dass Sie sich den Pfad ansehen, er endet mit ?id=2, daher wird er so gespeichert, Sie können die Datei verschieben oder den Parameter -O verwenden, um einen Dateinamen zu definieren.


Linux
  1. Warum funktioniert die Bash-Prozesssubstitution bei einigen Befehlen nicht?

  2. Warum liefert `md5sum` nicht den gleichen Hash wie das Internet?

  3. Warum ändert der folgende Weg die Größe der Kerndatei nicht?

  4. Warum enthält die Bash-Übersetzungsdatei nicht alle Fehlertexte?

  5. Linux – Warum funktioniert Locale Es_mx, aber nicht Es?

open() in Python erstellt keine Datei, wenn sie nicht existiert

Wie fordere ich eine Datei an, speichere sie aber nicht mit Wget?

Warum erkennt Windows keine Dateien in Linux-Partitionen?

Warum zeigt yum updateinfo nicht alle Updates an?

Warum gibt Bash keine solche Datei oder kein solches Verzeichnis für ein Programm an, das sich in meinem PATH befindet?

Warum gibt dd von /dev/random unterschiedliche Dateigrößen an?