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.