2016-05-14 13 views
3

Ich versuche, die KML-Datei herunterladen, die über Content-Disposition gesendet wird: Befestigung von der folgenden Website:wget Bruch mit Content-Disposition

http://waterwatch.usgs.gov/index.php?m=real&w=kml&r=us&regions=ia 

wget und curl mit dem Befehl:

wget --content-disposition http://waterwatch.usgs.gov/index.php?m=real&w=kml&r=us&regions=ia 

und

curl -O -J -L http://waterwatch.usgs.gov/index.php?m=real&w=kml&r=us&regions=ia 

anstatt jedoch das Speichern der Datei sein Sender, es spart nur die h tml Inhalt und am Ende der Übertragung bleibt es stecken. Die Terminalrückgabe ist:

$wget --content-disposition http://waterwatch.usgs.gov/index.php?m=real&w=kml&r=us&regions=ia 
[1] 32260 
[2] 32261 
[3] 32262 
[email protected]:~$ --2016-05-13 19:37:54-- http://waterwatch.usgs.gov/index.php?m=real 
Resolving waterwatch.usgs.gov (waterwatch.usgs.gov)... 2001:49c8:0:126c::56, 137.227.242.56 
Connecting to waterwatch.usgs.gov (waterwatch.usgs.gov)|2001:49c8:0:126c::56|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [text/html] 
Saving to: ‘index.php?m=real.5’ 

    [ <=>                                     ] 41.637  174KB/s in 0,2s 

2016-05-13 19:37:55 (174 KB/s) - ‘index.php?m=real.5’ saved [41637] 

Und sie hat es stuch und ich muss Ctrl + C drücken. Da der Kopf ich erhalte, ist

HTTP/1.1 200 OK 
Date: Sat, 14 May 2016 00:19:21 GMT 
Content-Disposition: attachment; filename="real_ia.kml" 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: application/vnd.google-earth.kml+xml 
X-Frame-Options: SAMEORIGIN 

ich erwarten würde die ‚real_ia.kml‘ Datei heruntergeladen haben. Ein ähnliches Ergebnis wird mit dem Befehl curl angegeben.

Warum bleibt es stecken und lädt nur den HTML-Inhalt herunter?

Antwort

1

Die & Symbole werden als Shell-Sonderzeichen interpretiert, das bewirkt, dass ein Befehl im Hintergrund ausgeführt wird (fork). So sollten Sie escape or quote sie:

curl -O -J -L 'http://waterwatch.usgs.gov/index.php?m=real&w=kml&r=us&regions=ia' 

Im obigen Befehl wir full quoting verwendet.

Die folgenden Zeilen aus Ihrer Ausgabe bedeuten, dass drei Befehle Hintergrund gegabelt werden:

[1] 32260 
[2] 32261 
[3] 32262 

Die Zahlen an der linken Seite (in Klammern) sind Auftragsnummern. Sie können einen Job in den Vordergrund bringen, indem Sie fg N eingeben, wobei N die Nummer des Jobs ist. Die Zahlen auf der rechten Seite sind Prozess-IDs.

+0

Ruslan Osmanov, du hast den Tag gerettet! Alles läuft jetzt mit dem Befehl: 'curl -O -J-L http: //waterwatch.usgs.gov/index.php? M = real \ & w = kml \ & r = us \ & regionen = ia' (einfach hier posten, um es für die anderen klarzustellen) Vielen Dank! –