Curl: ladda ner flera filer med ett kommando

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1

Jag önskar ladda ner 15 filer med ett curlanrop.
På curls hemsida ges exemplet med -o:
curl http://{one,two}.site.com -o "file_#1.txt"

vilket jag modifierat till
curl http://{www,curl}.haxx.se -o "file_#1.txt"

Jag antar att den raden ska spara två filer, file_www.txt och file_curl.txt på hårddisken men enbart den första filen i listan skapas - den andra skrivs ut i terminalen.

En färdig exempelrad med curl som laddar ner två filer och sparar dem med två olika namn på hårddisken efterfrågas
Då kan jag bygga på den till 15 filer sen, bara jag får något som funkar med fler än en fil.

Det är till xmltv-widgeten för att kunna tanka ner tablåer för 14 dagar framåt... det är inte rimligt att starta upp 15 instanser av curl för varje kanal man har

  • Medlem
  • Kiruna
  • 2006-01-23 10:34

Om du tittar lite noggrannare när du exekverar ditt kommando så ser du troligtvis någon form av felmeddelande innan webbsidan skickas till stdout. När jag testar ditt exempel får jag exempelvis:

internal error: invalid pattern type (0)
bad output glob!

Vilket kanske kan bero på mina glob-inställningar. För säkerhets skull brukar jag alltid använda citattecken kring URL:en. Gör jag det med ditt exempel funkar det, i alla fall hos mig:

curl "http://{www,curl}.haxx.se" -o "file_#1.txt"

Jag tackar och bockar, om jag använder citationstecken så funkar det som det ska!

En snabb titt i koden till widgeten och det visar sig att jag inte använder citationstecken där heller vilket nog är orsaken till mina problem.

Stort tack, nu kan jag nog lösa det hela!

Uppföljning: Det funkade utmärkt om man bara lade till citationstecken runt alla url-er i curlanropet. Struntar man i citationstecknen laddas bara första filen ner.
Om nån mer undrar

1
Bevaka tråden