curl(1)

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

curl(1) — Linux manuelsida

NAMN

curl - överför en URL

SYNOPSIS

curl [alternativ / URL:er]

BESKRIVNING

curl är ett verktyg för att överföra data från eller till en server med hjälp av URL:er. Det stöder följande protokoll: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS och WSS.

curl drivs av libcurl för alla överföringsrelaterade funktioner. Se libcurl(3) för detaljer.

URL

URL-syntaxen är protokollberoende. En detaljerad beskrivning finns i RFC 3986.

Om du anger en URL utan ett inledande protocol:// schema, gissar curl vilket protokoll du vill använda. Det standardiserar till HTTP men antar andra baserat på ofta använda värdnamnsprefix. Till exempel, för värdnamn som börjar med "ftp." antar curl att du vill använda FTP.

Du kan ange valfritt antal URL:er på kommandoraden. De hämtas i sekventiell ordning om du inte använder -Z, --parallel. Du kan blanda kommandoradsalternativ och URL:er i vilken ordning som helst.

curl försöker återanvända anslutningar när flera överföringar görs, vilket förbättrar hastigheten.

Exempel på en IPv6-zon-ID i URL:

 "http://[fe80::3%25eth0]/"

GLOBBING

Du kan ange flera URL:er eller delar av URL:er genom att skriva listor inom {} eller intervaller inom []. Detta kallas "globbing".

Exempel på listor:

 "http://site.{one,two,three}.com"

Exempel på intervall:

 "ftp://ftp.example.com/file[1-100].txt"
 "ftp://ftp.example.com/file[a-z].txt"

För att stänga av globbing, använd -g, --globoff.

VARIABLER

curl stöder kommandoradsvariabler (tillagt i 8.3.0). Ange variabler med --variable namn=innehåll eller --variable namn@fil.

Expandera variabler i alternativparametrar med Mall:namn.

Exempel på att importera miljövariabler:

 --variable '%USER'
 --expand-url = "https://example.com/api/Mall:USER/method"

Funktioner för variabelinnehåll inkluderar trim, json, url, och b64.

UTGÅNG

Om inget annat anges skriver curl mottagen data till stdout. Använd -o, --output eller -O, --remote-name för att spara data till en fil.

PROTOKOLL

curl stöder ett flertal protokoll. Din specifika byggnad kan sakna stöd för vissa av dem.

  • DICT - Slå upp ord med onlineordböcker.
  • FILE - Läs eller skriv lokala filer.
  • FTP(S) - Stöd för File Transfer Protocol, med eller utan TLS.
  • HTTP(S) - Stöd för HTTP version 0.9, 1.0, 1.1, 2 och 3.
  • IMAP(S) - Läs e-post med eller utan TLS.
  • LDAP(S) - Sök i kataloger med eller utan TLS.
  • MQTT - Stöd för MQTT version 3.
  • POP3(S) - Hämta e-post från en POP3-server.
  • RTMP(S) - Hämta strömmande media.
  • SCP/SFTP - Stöd för överföring via SSH.
  • SMTP(S) - Skicka e-post med eller utan TLS.
  • TELNET - Interaktiv session.
  • TFTP - Hämta och ladda upp filer.

PROGRESS METER

curl visar normalt en framstegsmätare under operationer. Den visar överförd datamängd, hastighet och uppskattad tid kvar.

För att få en framstegs"bar", använd -#, --progress-bar. För att stänga av framstegsmätaren, använd -s, --silent.

VERSION

Denna manuelsida beskriver curl 8.6.0. För att kontrollera den senaste versionen, kör:

 curl https://curl.se/info

Den senaste versionen av denna manuelsida finns på: https://curl.se/docs/manpage.html

ALTERNATIV

Alternativ börjar med ett eller två bindestreck. Många av alternativen kräver ett extra värde bredvid sig. Om den angivna texten inte börjar med ett bindestreck, antas det vara och behandlas som en URL.

Den korta "enkelbindestrecks"-formen av alternativen, till exempel -d, kan användas med eller utan ett mellanslag mellan det och dess värde, även om ett mellanslag är en rekommenderad avgränsare. Den långa "dubbelbindestrecks"-formen, till exempel --data, kräver ett mellanslag mellan det och dess värde.

Kortversionalternativ som inte behöver några extra värden kan användas direkt intill varandra, till exempel kan du ange alla alternativen -O, -L och -v samtidigt som -OLv.

Generellt aktiveras alla booleska alternativ med --option och inaktiveras igen med --no-option. Det vill säga, du använder samma alternativnamn men föregår det med "no-".

När -:, --next används, återställs tolkningsstatusen och du börjar om med en ren alternativstatus, förutom för de alternativ som är "globala". Globala alternativ behåller sina värden och betydelse även efter -:, --next.

Följande alternativ är globala: --fail-early, --libcurl, --parallel-immediate, -Z, --parallel, -#, --progress-bar, --rate, -S, --show-error, --stderr, --styled-output, --trace-ascii, --trace-config, --trace-ids, --trace-time, --trace och -v, --verbose.

--abstract-unix-socket <sökväg> (HTTP) Anslut via ett abstrakt Unix-domän-uttag i stället för att använda nätverket. Observera: netstat visar sökvägen för ett abstrakt uttag med ett inledande '@', men argumentet <sökväg> ska inte ha detta tecken.

Alternativ

-b, --cookie <data|filnamn>

(HTTP) Skicka data till HTTP-servern i Cookie-headern. Detta är normalt data som tidigare mottagits från servern i en "Set-Cookie:"-rad. Data bör vara i formatet "NAME1=VALUE1; NAME2=VALUE2". Detta gör att curl använder cookie-headern med detta innehåll explicit i alla utgående förfrågningar. Om flera förfrågningar görs på grund av autentisering, följda omdirigeringar eller liknande, skickas denna cookie vidare.

Om inget '='-tecken används i argumentet behandlas det istället som ett filnamn för att läsa tidigare lagrade cookies. Detta alternativ aktiverar också cookie-motorn som gör att curl registrerar inkommande cookies, vilket kan vara användbart om du använder detta tillsammans med -L, --location-alternativet eller gör flera URL-överföringar i samma anrop. Om filnamnet är exakt ett minustecken ("-"), läser curl istället innehållet från stdin.

Filformatet för filen som läses bör vara vanliga HTTP-headers (Set-Cookie-stil) eller Netscape/Mozilla-cookiefilformatet.

Filen som anges med -b, --cookie används endast som indata. Inga cookies skrivs till filen. För att lagra cookies, använd -c, --cookie-jar-alternativet.

Om du använder Set-Cookie-filformatet och inte anger en domän skickas inte cookien eftersom domänen aldrig matchar. För att åtgärda detta, sätt en domän i Set-Cookie-raden (vilket inkluderar underdomäner) eller använd helst Netscape-formatet.

Användare vill ofta både läsa cookies från en fil och skriva uppdaterade cookies tillbaka till en fil, så det är vanligt att använda både -b, --cookie och -c, --cookie-jar i samma kommandorad.

-b, --cookie kan användas flera gånger i en kommandorad.

Exempel:

curl -b cookiefile https://example.com
curl -b cookiefile -c cookiefile https://example.com

Se även -c, --cookie-jar och -j, --junk-session-cookies.

-c, --cookie-jar <filnamn>

(HTTP) Ange till vilken fil du vill att curl ska skriva alla cookies efter en slutförd operation. Curl skriver alla cookies från sitt in-memory cookie-lager till den angivna filen i slutet av operationerna. Om inga cookies är kända skrivs ingen data. Filen skapas med hjälp av Netscape-cookiefilformatet. Om du sätter filnamnet till ett enda minustecken, "-", skrivs cookies till stdout.

Filen som anges med -c, --cookie-jar används endast för utdata. Inga cookies läses från filen. För att läsa cookies, använd -b, --cookie-alternativet. Båda alternativen kan ange samma fil.

Detta kommandoradsalternativ aktiverar cookie-motorn som gör att curl registrerar och använder cookies. -b, --cookie-alternativet aktiverar också detta.

Om cookie-burken inte kan skapas eller skrivas till, misslyckas inte hela curl-operationen eller rapporterar ens ett fel tydligt. Användning av -v, --verbose visar en varning, men det är den enda synliga återkopplingen du får om denna potentiellt allvarliga situation.

Om -c, --cookie-jar anges flera gånger används det sista värdet.

Exempel:

curl -c lagra-har.txt https://example.com
curl -c lagra-har.txt -b lasa-dessa https://example.com

Se även -b, --cookie.

--create-dirs

När detta används tillsammans med -o, --output-alternativet skapar curl den nödvändiga lokala katalogstrukturen vid behov. Detta alternativ skapar katalogerna som nämns med -o, --output-alternativet kombinerat med sökvägen som eventuellt anges med --output-dir. Om det kombinerade utdatafilnamnet inte använder någon katalog, eller om de kataloger det nämner redan finns, skapas inga kataloger.

Skapade kataloger görs med läget 0750 på Unix-liknande filsystem.

För att skapa fjärrkataloger vid användning av FTP eller SFTP, prova --ftp-create-dirs.

Att ange --create-dirs flera gånger har ingen extra effekt. Inaktivera det igen med --no-create-dirs.

Exempel:

curl --create-dirs --output lokal/katalog/fil https://example.com

Se även --ftp-create-dirs och --output-dir.


Om --abstract-unix-socket anges flera gånger används det sista värdet.

Exempel:

curl --abstract-unix-socket socketpath https://example.com

Se även --unix-socket. Tillagt i 7.53.0.

--alt-svc <filnamn> (HTTPS) Detta alternativ aktiverar alt-svc-parsern i curl. Om filnamnet pekar på en befintlig alt-svc-cachefil används den. Efter en slutförd överföring sparas cachen till filnamnet igen om den har ändrats.

Ange ett "" filnamn (noll längd) för att undvika inläsning/sparning och låta curl hantera cachen i minnet.

Om detta alternativ används flera gånger laddar curl innehåll från alla filer, men den sista används för sparning.

--alt-svc kan användas flera gånger i en kommandorad.

Exempel:

curl --alt-svc svc.txt https://example.com

Se även --resolve och --connect-to. Tillagt i 7.64.1.

--anyauth (HTTP) Instruerar curl att automatiskt välja autentiseringsmetod och använda den säkraste som fjärrsidan stödjer. Detta görs genom att först skicka en begäran och kontrollera svarshuvuden, vilket kan medföra en extra nätverksrunda. Används i stället för att ställa in en specifik autentiseringsmetod som du kan göra med --basic, --digest, --ntlm och --negotiate.

Det rekommenderas inte att använda --anyauth vid uppladdning från stdin, eftersom det kan kräva att data skickas två gånger och klienten måste kunna spola tillbaka. Om detta behov uppstår vid uppladdning från stdin misslyckas överföringen.

Används tillsammans med -u, --user.

Att ange --anyauth flera gånger har ingen extra effekt.

Exempel:

curl --anyauth --user me:pwd https://example.com

Se även --proxy-anyauth, --basic och --digest.

-a, --append (FTP SFTP) När det används vid uppladdning gör detta alternativ att curl lägger till i målfilen i stället för att skriva över den. Om den fjärrstyrda filen inte finns skapas den. Observera att denna flagga ignoreras av vissa SFTP-servrar (inklusive OpenSSH).

Att ange -a, --append flera gånger har ingen extra effekt. Inaktivera det igen med --no-append.

Exempel:

curl --upload-file local --append ftp://example.com/

Se även -r, --range och -C, --continue-at.

--aws-sigv4 <provider1[:provider2[:region[:service]]]> (HTTP) Använd AWS V4-signaturautentisering i överföringen.

Argumentet provider är en sträng som används av algoritmen vid skapande av utgående autentiseringshuvuden.

Argumentet region pekar på ett geografiskt område för en resurskollektion (region-kod) när regionsnamnet utelämnas från slutpunkten.

Argumentet service pekar på en funktion tillhandahållen av en molntjänst (service-kod) när servicens namn utelämnas från slutpunkten.

Om --aws-sigv4 anges flera gånger används det sista värdet.

Exempel:

curl --aws-sigv4 "aws:amz:us-east-2:es" --user "key:secret" https://example.com

Se även --basic och -u, --user. Tillagt i 7.75.0.

--basic (HTTP) Instruerar curl att använda HTTP Basic-autentisering med fjärrvärden. Detta är standardinställningen och detta alternativ är vanligtvis onödigt, om du inte använder det för att åsidosätta ett tidigare inställt alternativ som anger en annan autentiseringsmetod (som --ntlm, --digest eller --negotiate).

Används tillsammans med -u, --user.

Att ange --basic flera gånger har ingen extra effekt.

Exempel:

curl -u name:password --basic https://example.com

Se även --proxy-basic.

--ca-native (TLS) Instruerar curl att använda CA-lagringen från det inbyggda operativsystemet för att verifiera motparten. Som standard använder curl annars en CA-lagring som tillhandahålls i en enda fil eller katalog, men när detta alternativ används integrerar det med operativsystemets egen lagring.

Detta alternativ fungerar endast för curl på Windows när det byggts för att använda OpenSSL. När curl på Windows byggs för att använda Schannel är denna funktion underförstådd och curl använder då endast den inbyggda CA-lagringen.

curl byggt med wolfSSL stöder också detta alternativ (tillagt i 8.3.0).

Att ange --ca-native flera gånger har ingen extra effekt. Inaktivera det igen med --no-ca-native.

Exempel:

curl --ca-native https://example.com

Se även --cacert, --capath och -k, --insecure. Tillagt i 8.2.0.