So laden Sie in Linux eine Datei von einer URL herunter

So laden Sie in Linux eine Datei von einer URL herunter

Normalerweise lädt man eine Datei mit einer URL herunter, die mit der Dateierweiterung endet.

Um Ubuntu ISO herunterzuladen, müsste man einfach

wget http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso

Ich bin jedoch auf eine Site gestoßen, von der ich vermute, dass sie ASP.Net/IIS verwendet.

Ein Link zu einer ISO-Datei hat diese Form(Ich habe den Linkinhalt entfernt, im Falle von ... Richtlinien):

http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899

Ich bin nicht sicher, wie ich das herunterladen soll, da es MD5 und Ablaufzeit als Parameter hat und wget daher nur eine Webseite herunterlädt, nicht dieses ISO.

Irgendwelche Vorschläge?

Antwort1

Verwenden

wget "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899"

Erläuterung: Die URL enthält das Zeichen "&". Unter Linux und ähnlichen Systemen wird es dadurch zu einem Hintergrundprozess.

Die Lösung besteht darin, die URL in doppelte Anführungszeichen () einzuschließen, "sodass sie als ein Argument behandelt wird.

Antwort2

Wenn Sie nur versuchen, einen sinnvollen Dateinamen für die komplexe URL zu erhalten, können Sie denAusgabedokumentMöglichkeit.

-O file
--output-document=file

Beide Formen sind funktionsfähig.

Stellen Sie wie bereits erwähnt sicher, dass keines der Sonderzeichen in der URL vom Befehlsparser interpretiert wird.

Antwort3

Dies können Sie auf zwei Arten tun:Locken.

Bei dieser ersten Methode würden Sie das -OFlag zum Ausgeben der Datei basierend auf dem Remote-Namen aus der URL verwenden. In diesem Fall würde die Datei höchstwahrscheinlich als an das System ausgegeben IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899. Beachten Sie, dass der URL-Wert in Anführungszeichen eingeschlossen ist &und ?als Bash-Befehl fehlinterpretiert werden könnte:

curl -O -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899";

Diese Methode funktioniert zwar technisch gesehen, aber der Dateiname ist bestenfalls verwirrend. Bei dieser anderen Methode würden Sie also die Ausgabeumleitung verwenden – >gefolgt von einem Dateinamen nach der URL –, um den Dateiinhalt in eine Datei mit dem Namen auszugeben IMAGENAME.ISO:

curl -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899" > "IMAGENAME.ISO";

Wenn Sie mich fragen, funktioniert die zweite Methode für den durchschnittlichen Gebrauch am besten. Beachten Sie auch das -LFlag, das in beiden Befehlen verwendet wird. Dieses weist Curl an, allen Umleitungslinks zu folgen, die eine Dateidownload-URL möglicherweise enthält, da Dateien bei Download-Diensten häufig einige Male umgeleitet werden, bevor sie bei der Zielnutzlastdatei landen.

verwandte Informationen