1curl(1)                           Curl Manual                          curl(1)
2
3
4

NAME

6       curl - transfer a URL
7

SYNOPSIS

9       curl [options] [URL...]
10

DESCRIPTION

12       curl  is  a tool to transfer data from or to a server, using one of the
13       supported protocols (HTTP, HTTPS, FTP, FTPS,  SCP,  SFTP,  TFTP,  DICT,
14       TELNET,  LDAP  or  FILE).  The command is designed to work without user
15       interaction.
16
17       curl offers a busload of useful tricks like proxy support, user authen‐
18       tication,  FTP upload, HTTP post, SSL connections, cookies, file trans‐
19       fer resume and more. As you will see below, the number of features will
20       make your head spin!
21
22       curl  is  powered  by  libcurl  for  all transfer-related features. See
23       libcurl(3) for details.
24

URL

26       The URL syntax is protocol-dependent. You'll find a  detailed  descrip‐
27       tion in RFC 3986.
28
29       You  can  specify  multiple  URLs or parts of URLs by writing part sets
30       within braces as in:
31
32        http://site.{one,two,three}.com
33
34       or you can get sequences of alphanumeric series by using [] as in:
35
36        ftp://ftp.numericals.com/file[1-100].txt
37        ftp://ftp.numericals.com/file[001-100].txt    (with leading zeros)
38        ftp://ftp.letters.com/file[a-z].txt
39
40       No nesting of the sequences is supported at the moment, but you can use
41       several ones next to each other:
42
43        http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html
44
45       You  can  specify  any amount of URLs on the command line. They will be
46       fetched in a sequential manner in the specified order.
47
48       Since curl 7.15.1 you can also specify a step counter for  the  ranges,
49       so that you can get every Nth number or letter:
50
51        http://www.numericals.com/file[1-100:10].txt
52        http://www.letters.com/file[a-z:2].txt
53
54       If  you  specify  URL  without protocol:// prefix, curl will attempt to
55       guess what protocol you might want. It will then default  to  HTTP  but
56       try  other  protocols based on often-used host name prefixes. For exam‐
57       ple, for host names starting with "ftp." curl will assume you  want  to
58       speak FTP.
59
60       curl  will  do  its best to use what you pass to it as a URL. It is not
61       trying to validate it as a syntactically correct URL by any  means  but
62       is instead very liberal with what it accepts.
63
64       Curl will attempt to re-use connections for multiple file transfers, so
65       that getting many files from the same server will not do multiple  con‐
66       nects / handshakes. This improves speed. Of course this is only done on
67       files specified on a single command line and  cannot  be  used  between
68       separate curl invokes.
69

PROGRESS METER

71       curl  normally  displays a progress meter during operations, indicating
72       the amount of transferred data,  transfer  speeds  and  estimated  time
73       left, etc.
74
75       However,  since  curl displays this data to the terminal by default, if
76       you invoke curl to do an operation and it is about to write data to the
77       terminal,  it disables the progress meter as otherwise it would mess up
78       the output mixing progress meter and response data.
79
80       If you want a progress meter for HTTP POST or PUT requests, you need to
81       redirect  the  response  output to a file, using shell redirect (>), -o
82       [file] or similar.
83
84       It is not the same case for FTP upload as that operation does not  spit
85       out any response data to the terminal.
86
87       If you prefer a progress "bar" instead of the regular meter, -# is your
88       friend.
89

OPTIONS

91       In general, all boolean options are enabled with --option and yet again
92       disabled  with --no-option. That is, you use the exact same option name
93       but prefix it with "no-". However, in this list we mostly only list and
94       show  the --option version of them. (This concept with --no options was
95       added in  7.19.0.  Previously  most  options  were  toggled  on/off  on
96       repeated use of the same command line option.)
97
98       -a/--append
99              (FTP/SFTP) When used in an upload, this will tell curl to append
100              to the target file  instead  of  overwriting  it.  If  the  file
101              doesn't  exist,  it  will  be  created.   Note that this flag is
102              ignored by some SSH servers (including OpenSSH).
103
104       -A/--user-agent <agent string>
105              (HTTP) Specify the User-Agent string to send to the HTTP server.
106              Some   badly   done  CGIs  fail  if  this  field  isn't  set  to
107              "Mozilla/4.0". To encode blanks  in  the  string,  surround  the
108              string  with  single  quote marks. This can also be set with the
109              -H/--header option of course.
110
111              If this option is set more than once, the last one will  be  the
112              one that's used.
113
114       --anyauth
115              (HTTP) Tells curl to figure out authentication method by itself,
116              and use the most secure one the remote site claims  to  support.
117              This is done by first doing a request and checking the response-
118              headers, thus possibly inducing  an  extra  network  round-trip.
119              This  is  used  instead  of  setting  a  specific authentication
120              method, which you can do with  --basic,  --digest,  --ntlm,  and
121              --negotiate.
122
123              Note  that  using --anyauth is not recommended if you do uploads
124              from stdin, since it may require data to be sent twice and  then
125              the client must be able to rewind. If the need should arise when
126              uploading from stdin, the upload operation will fail.
127
128       -b/--cookie <name=data>
129              (HTTP) Pass the data to the HTTP server as a cookie. It is  sup‐
130              posedly  the data previously received from the server in a "Set-
131              Cookie:" line.  The data should be in the format  "NAME1=VALUE1;
132              NAME2=VALUE2".
133
134              If  no  '=' symbol is used in the line, it is treated as a file‐
135              name to use to read previously stored cookie lines  from,  which
136              should  be used in this session if they match. Using this method
137              also activates the "cookie parser" which will make  curl  record
138              incoming cookies too, which may be handy if you're using this in
139              combination with the -L/--location option. The  file  format  of
140              the  file  to  read cookies from should be plain HTTP headers or
141              the Netscape/Mozilla cookie file format.
142
143              NOTE that the file specified with -b/--cookie is  only  used  as
144              input.  No cookies will be stored in the file. To store cookies,
145              use the -c/--cookie-jar option or you could even save  the  HTTP
146              headers to a file using -D/--dump-header!
147
148              If  this  option is set more than once, the last one will be the
149              one that's used.
150
151       -B/--use-ascii
152              Enable ASCII transfer when using FTP or LDAP. For FTP, this  can
153              also  be enforced by using an URL that ends with ";type=A". This
154              option causes data sent to stdout to be in text mode  for  win32
155              systems.
156
157       --basic
158              (HTTP)  Tells curl to use HTTP Basic authentication. This is the
159              default and this option is usually pointless, unless you use  it
160              to  override  a  previously  set  option  that  sets a different
161              authentication method (such as --ntlm,  --digest,  or  --negoti‐
162              ate).
163
164       --ciphers <list of ciphers>
165              (SSL) Specifies which ciphers to use in the connection. The list
166              of ciphers must specify valid ciphers. Read  up  on  SSL  cipher
167              list           details           on           this          URL:
168              http://www.openssl.org/docs/apps/ciphers.html
169
170              NSS ciphers are done differently than OpenSSL  and  GnuTLS.  The
171              full  list of NSS ciphers is in the NSSCipherSuite entry at this
172              URL:                                          http://git.fedora
173              hosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives
174
175              If this option is used several times, the last one will override
176              the others.
177
178       --compressed
179              (HTTP) Request a compressed response using one of the algorithms
180              libcurl supports, and return the uncompressed document.  If this
181              option is used and the server  sends  an  unsupported  encoding,
182              curl will report an error.
183
184       --connect-timeout <seconds>
185              Maximum  time  in  seconds  that you allow the connection to the
186              server to take.  This only limits  the  connection  phase,  once
187              curl  has  connected this option is of no more use. See also the
188              -m/--max-time option.
189
190              If this option is used several times, the last one will be used.
191
192       -c/--cookie-jar <file name>
193              Specify to which file you want curl to write all cookies after a
194              completed  operation.  Curl  writes  all cookies previously read
195              from a specified file as  well  as  all  cookies  received  from
196              remote server(s). If no cookies are known, no file will be writ‐
197              ten. The file will be written using  the  Netscape  cookie  file
198              format.  If  you  set  the  file name to a single dash, "-", the
199              cookies will be written to stdout.
200
201              NOTE If the cookie jar can't be created or written to, the whole
202              curl operation won't fail or even report an error clearly. Using
203              -v will get a warning displayed, but that is  the  only  visible
204              feedback you get about this possibly lethal situation.
205
206              If  this  option  is used several times, the last specified file
207              name will be used.
208
209       -C/--continue-at <offset>
210              Continue/Resume a previous file transfer at  the  given  offset.
211              The  given  offset  is  the  exact  number of bytes that will be
212              skipped, counting from the beginning of the source  file  before
213              it is transferred to the destination.  If used with uploads, the
214              FTP server command SIZE will not be used by curl.
215
216              Use "-C -" to tell curl to automatically find out  where/how  to
217              resume  the  transfer. It then uses the given output/input files
218              to figure that out.
219
220              If this option is used several times, the last one will be used.
221
222       --create-dirs
223              When used in conjunction with the -o option,  curl  will  create
224              the  necessary  local directory hierarchy as needed. This option
225              creates the dirs mentioned with the -o option, nothing else.  If
226              the  -o file name uses no dir or if the dirs it mentions already
227              exist, no dir will be created.
228
229              To create remote directories when using FTP or SFTP, try  --ftp-
230              create-dirs.
231
232       --crlf (FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390).
233
234       --crlfile <file>
235              (HTTPS/FTPS)  Provide a file using PEM format with a Certificate
236              Revocation List that may specify peer certificates that  are  to
237              be considered revoked.
238
239              If this option is used several times, the last one will be used.
240
241              (Added in 7.19.7)
242
243       -d/--data <data>
244              (HTTP)  Sends  the  specified data in a POST request to the HTTP
245              server, in the same way that a browser  does  when  a  user  has
246              filled  in an HTML form and presses the submit button. This will
247              cause curl to pass the data to the server using the content-type
248              application/x-www-form-urlencoded.  Compare to -F/--form.
249
250              -d/--data  is  the  same  as  --data-ascii.  To post data purely
251              binary, you should instead use the --data-binary option. To URL-
252              encode the value of a form field you may use --data-urlencode.
253
254              If  any of these options is used more than once on the same com‐
255              mand line, the data pieces specified  will  be  merged  together
256              with  a  separating  &-symbol.  Thus,  using  '-d name=daniel -d
257              skill=lousy'  would  generate  a  post  chunk  that  looks  like
258              'name=daniel&skill=lousy'.
259
260              If  you  start  the data with the letter @, the rest should be a
261              file name to read the data from, or - if you want curl  to  read
262              the  data  from stdin.  The contents of the file must already be
263              URL-encoded. Multiple files can also be specified. Posting  data
264              from  a file named 'foobar' would thus be done with --data @foo‐
265              bar.
266
267       --data-binary <data>
268              (HTTP) This posts data exactly as specified with no  extra  pro‐
269              cessing whatsoever.
270
271              If  you  start  the data with the letter @, the rest should be a
272              filename.  Data is posted in a similar  manner  as  --data-ascii
273              does,  except  that  newlines  are preserved and conversions are
274              never done.
275
276              If this option is used several times,  the  ones  following  the
277              first will append data as described in -d/--data.
278
279       --data-urlencode <data>
280              (HTTP) This posts data, similar to the other --data options with
281              the exception that this performs URL-encoding. (Added in 7.18.0)
282
283              To be CGI-compliant, the <data> part should begin  with  a  name
284              followed  by a separator and a content specification. The <data>
285              part can be passed to curl using one of the following syntaxes:
286
287              content
288                     This will make curl URL-encode the content and pass  that
289                     on.  Just  be careful so that the content doesn't contain
290                     any = or @ symbols, as that will  then  make  the  syntax
291                     match one of the other cases below!
292
293              =content
294                     This  will make curl URL-encode the content and pass that
295                     on. The preceding = symbol is not included in the data.
296
297              name=content
298                     This will make curl URL-encode the content part and  pass
299                     that  on.  Note that the name part is expected to be URL-
300                     encoded already.
301
302              @filename
303                     This will  make  curl  load  data  from  the  given  file
304                     (including  any  newlines), URL-encode that data and pass
305                     it on in the POST.
306
307              name@filename
308                     This will  make  curl  load  data  from  the  given  file
309                     (including  any  newlines), URL-encode that data and pass
310                     it on in the POST. The  name  part  gets  an  equal  sign
311                     appended, resulting in name=urlencoded-file-content. Note
312                     that the name is expected to be URL-encoded already.
313
314       --delegation LEVEL
315              Set LEVEL to tell the server what it is allowed to delegate when
316              it comes to user credentials. Used with GSS/kerberos.
317
318              none   Don't allow any delegation.
319
320              policy Delegates  if  and only if the OK-AS-DELEGATE flag is set
321                     in the Kerberos service ticket,  which  is  a  matter  of
322                     realm policy.
323
324              always Unconditionally allow the server to delegate.
325
326       --digest
327              (HTTP) Enables HTTP Digest authentication. This is a authentica‐
328              tion that prevents the password from being sent over the wire in
329              clear  text.  Use  this in combination with the normal -u/--user
330              option to set user name and password. See also --ntlm, --negoti‐
331              ate and --anyauth for related options.
332
333              If  this option is used several times, the following occurrences
334              make no difference.
335
336       --disable-eprt
337              (FTP) Tell curl to disable the use of the EPRT and LPRT commands
338              when doing active FTP transfers. Curl will normally always first
339              attempt to use EPRT, then LPRT before using PORT, but with  this
340              option,  it  will  use PORT right away. EPRT and LPRT are exten‐
341              sions to the original FTP protocol, and  may  not  work  on  all
342              servers, but they enable more functionality in a better way than
343              the traditional PORT command.
344
345              Since curl 7.19.0, --eprt can be used to explicitly enable  EPRT
346              again and --no-eprt is an alias for --disable-eprt.
347
348              Disabling  EPRT only changes the active behavior. If you want to
349              switch to passive mode you need  to  not  use  -P/--ftp-port  or
350              force it with --ftp-pasv.
351
352       --disable-epsv
353              (FTP)  Tell  curl  to  disable  the use of the EPSV command when
354              doing passive FTP transfers. Curl  will  normally  always  first
355              attempt  to  use EPSV before PASV, but with this option, it will
356              not try using EPSV.
357
358              Since curl 7.19.0, --epsv can be used to explicitly enable  EPRT
359              again and --no-epsv is an alias for --disable-epsv.
360
361              Disabling EPSV only changes the passive behavior. If you want to
362              switch to active mode you need to use -P/--ftp-port.
363
364       -D/--dump-header <file>
365              Write the protocol headers to the specified file.
366
367              This option is handy to use when you want to store  the  headers
368              that  a  HTTP  site sends to you. Cookies from the headers could
369              then  be  read  in  a  second  curl  invocation  by  using   the
370              -b/--cookie option! The -c/--cookie-jar option is however a bet‐
371              ter way to store cookies.
372
373              When used in FTP, the FTP server response lines  are  considered
374              being "headers" and thus are saved there.
375
376              If this option is used several times, the last one will be used.
377
378       -e/--referer <URL>
379              (HTTP)  Sends the "Referer Page" information to the HTTP server.
380              This can also be set with the -H/--header flag of course.   When
381              used  with -L/--location you can append ";auto" to the --referer
382              URL to make curl automatically set the previous URL when it fol‐
383              lows  a  Location: header. The ";auto" string can be used alone,
384              even if you don't set an initial --referer.
385
386              If this option is used several times, the last one will be used.
387
388       --engine <name>
389              Select the OpenSSL crypto engine to use for  cipher  operations.
390              Use  --engine  list  to  print  a  list  of build-time supported
391              engines. Note that not all (or  none)  of  the  engines  may  be
392              available at run-time.
393
394       --environment
395              (RISC  OS ONLY) Sets a range of environment variables, using the
396              names the -w option supports, to allow easier extraction of use‐
397              ful information after having run curl.
398
399       --egd-file <file>
400              (SSL)  Specify  the  path  name  to the Entropy Gathering Daemon
401              socket. The socket is used to seed the  random  engine  for  SSL
402              connections. See also the --random-file option.
403
404       -E/--cert <certificate[:password]>
405              (SSL) Tells curl to use the specified certificate file when get‐
406              ting a file with HTTPS or FTPS. The certificate must be  in  PEM
407              format.   If  the  optional password isn't specified, it will be
408              queried for on the terminal. Note that  this  option  assumes  a
409              "certificate"  file that is the private key and the private cer‐
410              tificate concatenated! See --cert  and  --key  to  specify  them
411              independently.
412
413              If  curl  is  built against the NSS SSL library then this option
414              can tell curl the nickname of the certificate to use within  the
415              NSS  database defined by the environment variable SSL_DIR (or by
416              default /etc/pki/nssdb). If the NSS  PEM  PKCS#11  module  (lib‐
417              nsspem.so)  is  available  then  PEM files may be loaded. If you
418              want to use a file from the current directory, please precede it
419              with "./" prefix, in order to avoid confusion with a nickname.
420
421              If this option is used several times, the last one will be used.
422
423       --cert-type <type>
424              (SSL)  Tells curl what certificate type the provided certificate
425              is in. PEM, DER and ENG are recognized types.  If not specified,
426              PEM is assumed.
427
428              If this option is used several times, the last one will be used.
429
430       --cacert <CA certificate>
431              (SSL) Tells curl to use the specified certificate file to verify
432              the peer. The file may contain  multiple  CA  certificates.  The
433              certificate(s)  must be in PEM format. Normally curl is built to
434              use a default file for this, so this option is typically used to
435              alter that default file.
436
437              curl  recognizes the environment variable named 'CURL_CA_BUNDLE'
438              if it is set, and uses the given path as a path  to  a  CA  cert
439              bundle. This option overrides that variable.
440
441              The  windows  version  of  curl will automatically look for a CA
442              certs file named ´curl-ca-bundle.crt´, either in the same direc‐
443              tory as curl.exe, or in the Current Working Directory, or in any
444              folder along your PATH.
445
446              If curl is built against  the  NSS  SSL  library,  the  NSS  PEM
447              PKCS#11  module  (libnsspem.so)  needs  to be available for this
448              option to work properly.
449
450              If this option is used several times, the last one will be used.
451
452       --capath <CA certificate directory>
453              (SSL) Tells curl to use the specified certificate  directory  to
454              verify the peer. The certificates must be in PEM format.
455
456              If this option is used several times, the last one will be used.
457
458       -f/--fail
459              (HTTP)  Fail  silently (no output at all) on server errors. This
460              is mostly done to better enable scripts etc to better deal  with
461              failed  attempts.  In  normal  cases when a HTTP server fails to
462              deliver a document, it  returns  an  HTML  document  stating  so
463              (which  often  also describes why and more). This flag will pre‐
464              vent curl from outputting that and return error 22.
465
466              This method is not fail-safe and there are occasions where  non-
467              successful  response  codes  will  slip through, especially when
468              authentication is involved (response codes 401 and 407).
469
470       --ftp-account [data]
471              (FTP) When an FTP server asks for "account data" after user name
472              and  password has been provided, this data is sent off using the
473              ACCT command. (Added in 7.13.0)
474
475              If this option is used twice, the second will override the  pre‐
476              vious use.
477
478       --ftp-create-dirs
479              (FTP/SFTP)  When  an  FTP or SFTP URL/operation uses a path that
480              doesn't currently exist on the server, the standard behavior  of
481              curl is to fail. Using this option, curl will instead attempt to
482              create missing directories.
483
484       --ftp-method [method]
485              (FTP) Control what method curl should use to reach a file  on  a
486              FTP(S)  server. The method argument should be one of the follow‐
487              ing alternatives:
488
489              multicwd
490                     curl does a single CWD operation for each  path  part  in
491                     the  given URL. For deep hierarchies this means very many
492                     commands. This is how RFC1738 says  it  should  be  done.
493                     This is the default but the slowest behavior.
494
495              nocwd  curl  does  no  CWD at all. curl will do SIZE, RETR, STOR
496                     etc and give a full path to the server for all these com‐
497                     mands. This is the fastest behavior.
498
499              singlecwd
500                     curl does one CWD with the full target directory and then
501                     operates on the file "normally"  (like  in  the  multicwd
502                     case).  This  is  somewhat  more standards compliant than
503                     'nocwd' but without the full penalty of 'multicwd'.
504       (Added in 7.15.1)
505
506       --ftp-pasv
507              (FTP) Use passive mode for the data connection. Passive  is  the
508              internal  default behavior, but using this option can be used to
509              override a previous -P/-ftp-port option. (Added in 7.11.0)
510
511              If this option is used several times, the following  occurrences
512              make  no  difference.  Undoing  an enforced passive really isn't
513              doable but you must then instead enforce the  correct  -P/--ftp-
514              port again.
515
516              Passive mode means that curl will try the EPSV command first and
517              then PASV, unless --disable-epsv is used.
518
519       --ftp-alternative-to-user <command>
520              (FTP) If authenticating with the USER and PASS  commands  fails,
521              send  this  command.   When  connecting  to  Tumbleweed's Secure
522              Transport server over FTPS using  a  client  certificate,  using
523              "SITE  AUTH"  will tell the server to retrieve the username from
524              the certificate. (Added in 7.15.5)
525
526       --ftp-skip-pasv-ip
527              (FTP) Tell curl to not use the IP address the server suggests in
528              its  response to curl's PASV command when curl connects the data
529              connection. Instead curl will re-use  the  same  IP  address  it
530              already uses for the control connection. (Added in 7.14.2)
531
532              This  option has no effect if PORT, EPRT or EPSV is used instead
533              of PASV.
534
535       --ftp-ssl
536              (FTP) Try to use SSL/TLS for the FTP connection.  Reverts  to  a
537              non-secure  connection  if  the  server doesn't support SSL/TLS.
538              See also --ftp-ssl-control and --ftp-ssl-reqd for different lev‐
539              els of encryption required. (Added in 7.11.0)
540
541       --ftp-ssl-control
542              (FTP)  Require  SSL/TLS  for  the FTP login, clear for transfer.
543              Allows secure authentication, but non-encrypted  data  transfers
544              for  efficiency.   Fails the transfer if the server doesn't sup‐
545              port SSL/TLS.  (Added in 7.16.0)
546
547       --ftp-ssl-reqd
548              (FTP) Require SSL/TLS for the FTP  connection.   Terminates  the
549              connection  if  the  server  doesn't support SSL/TLS.  (Added in
550              7.15.5)
551
552       --ftp-ssl-ccc
553              (FTP) Use CCC (Clear Command Channel)  Shuts  down  the  SSL/TLS
554              layer after authenticating. The rest of the control channel com‐
555              munication will be unencrypted. This allows NAT routers to  fol‐
556              low the FTP transaction. The default mode is passive. See --ftp-
557              ssl-ccc-mode for other modes.  (Added in 7.16.1)
558
559       --ftp-ssl-ccc-mode [active/passive]
560              (FTP) Use CCC (Clear Command Channel) Sets  the  CCC  mode.  The
561              passive  mode  will  not initiate the shutdown, but instead wait
562              for the server to do it, and will not reply to the shutdown from
563              the server. The active mode initiates the shutdown and waits for
564              a reply from the server.  (Added in 7.16.2)
565
566       -F/--form <name=content>
567              (HTTP) This lets curl emulate a filled-in form in which  a  user
568              has  pressed  the  submit  button. This causes curl to POST data
569              using the Content-Type multipart/form-data according to RFC2388.
570              This  enables  uploading of binary files etc. To force the 'con‐
571              tent' part to be a file, prefix the file name with an @ sign. To
572              just get the content part from a file, prefix the file name with
573              the symbol <. The difference between @ and  <  is  then  that  @
574              makes  a  file  get attached in the post as a file upload, while
575              the < makes a text field and just get the contents for that text
576              field from a file.
577
578              Example,  to send your password file to the server, where 'pass‐
579              word' is the name of the form-field to which /etc/passwd will be
580              the input:
581
582              curl -F password=@/etc/passwd www.mypasswords.com
583
584              To  read  the file's content from stdin instead of a file, use -
585              where the file name should've been. This goes for both @  and  <
586              constructs.
587
588              You  can  also  tell  curl  what  Content-Type  to  use by using
589              'type=', in a manner similar to:
590
591              curl -F "web=@index.html;type=text/html" url.com
592
593              or
594
595              curl -F "name=daniel;type=text/foo" url.com
596
597              You can also explicitly change the name field of an file  upload
598              part by setting filename=, like this:
599
600              curl -F "file=@localfile;filename=nameinpost" url.com
601
602              See further examples and details in the MANUAL.
603
604              This option can be used multiple times.
605
606       --form-string <name=string>
607              (HTTP)  Similar  to  --form except that the value string for the
608              named parameter is used literally. Leading '@' and  '<'  charac‐
609              ters, and the ';type=' string in the value have no special mean‐
610              ing. Use this in preference to --form if there's any possibility
611              that  the  string  value may accidentally trigger the '@' or '<'
612              features of --form.
613
614       -g/--globoff
615              This option switches off the "URL globbing parser". When you set
616              this  option, you can specify URLs that contain the letters {}[]
617              without having them being interpreted by curl itself. Note  that
618              these  letters are not normal legal URL contents but they should
619              be encoded according to the URI standard.
620
621       -G/--get
622              When used,  this  option  will  make  all  data  specified  with
623              -d/--data  or  --data-binary  to  be  used in a HTTP GET request
624              instead of the POST request that otherwise would  be  used.  The
625              data will be appended to the URL with a '?' separator.
626
627              If  used  in  combination with -I, the POST data will instead be
628              appended to the URL with a HEAD request.
629
630              If this option is used several times, the following  occurrences
631              make  no  difference. This is because undoing a GET doesn't make
632              sense, but you  should  then  instead  enforce  the  alternative
633              method you prefer.
634
635       -h/--help
636              Usage help.
637
638       -H/--header <header>
639              (HTTP)  Extra  header  to  use  when getting a web page. You may
640              specify any number of extra headers. Note that if you should add
641              a  custom  header  that has the same name as one of the internal
642              ones curl would use, your externally set  header  will  be  used
643              instead of the internal one. This allows you to make even trick‐
644              ier stuff than curl would normally do. You  should  not  replace
645              internally  set  headers  without  knowing  perfectly  well what
646              you're doing. Remove an internal header by giving a  replacement
647              without  content  on  the  right  side  of  the colon, as in: -H
648              "Host:".
649
650              curl will make sure that each header  you  add/replace  is  sent
651              with the proper end-of-line marker, you should thus not add that
652              as a part of the header content: do not add newlines or carriage
653              returns, they will only mess things up for you.
654
655              See also the -A/--user-agent and -e/--referer options.
656
657              This  option  can  be  used multiple times to add/replace/remove
658              multiple headers.
659
660       --hostpubmd5 <md5>
661              Pass a string  containing  32  hexadecimal  digits.  The  string
662              should  be  the 128 bit MD5 checksum of the remote host's public
663              key, curl will refuse the connection with the  host  unless  the
664              md5sums  match.  This option is only for SCP and SFTP transfers.
665              (Added in 7.17.1)
666
667       --ignore-content-length
668              (HTTP) Ignore the Content-Length header.  This  is  particularly
669              useful  for servers running Apache 1.x, which will report incor‐
670              rect Content-Length for files larger than 2 gigabytes.
671
672       -i/--include
673              (HTTP) Include the HTTP-header in the  output.  The  HTTP-header
674              includes  things  like  server-name, date of the document, HTTP-
675              version and more...
676
677       --interface <name>
678              Perform an operation using a specified interface. You can  enter
679              interface  name,  IP address or host name. An example could look
680              like:
681
682               curl --interface eth0:1 http://www.netscape.com/
683
684              If this option is used several times, the last one will be used.
685
686       -I/--head
687              (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature
688              the  command  HEAD which this uses to get nothing but the header
689              of a document. When used on a FTP or FILE  file,  curl  displays
690              the file size and last modification time only.
691
692       -j/--junk-session-cookies
693              (HTTP) When curl is told to read cookies from a given file, this
694              option will make it discard all  "session  cookies".  This  will
695              basically  have  the same effect as if a new session is started.
696              Typical browsers always discard  session  cookies  when  they're
697              closed down.
698
699       -k/--insecure
700              (SSL)  This  option explicitly allows curl to perform "insecure"
701              SSL connections and transfers. All SSL connections are attempted
702              to  be  made secure by using the CA certificate bundle installed
703              by default. This makes  all  connections  considered  "insecure"
704              fail unless -k/--insecure is used.
705
706              See     this    online    resource    for    further    details:
707              http://curl.haxx.se/docs/sslcerts.html
708
709       --keepalive-time <seconds>
710              This option sets the time a  connection  needs  to  remain  idle
711              before  sending keepalive probes and the time between individual
712              keepalive probes. It is currently effective on operating systems
713              offering  the  TCP_KEEPIDLE  and  TCP_KEEPINTVL  socket  options
714              (meaning Linux, recent AIX, HP-UX and more). This option has  no
715              effect if --no-keepalive is used. (Added in 7.18.0)
716
717              If  this option is used multiple times, the last occurrence sets
718              the amount.
719
720       --key <key>
721              (SSL/SSH) Private key file name. Allows you to provide your pri‐
722              vate  key in this separate file. For SSH, if not specified, curl
723              tries  the  following  candidates  in  order:   '~/.ssh/id_rsa',
724              '~/.ssh/id_dsa', './id_rsa', './id_dsa'.
725
726              If this option is used several times, the last one will be used.
727
728       --key-type <type>
729              (SSL)  Private key file type. Specify which type your --key pro‐
730              vided private key is. DER, PEM, and ENG are  supported.  If  not
731              specified, PEM is assumed.
732
733              If this option is used several times, the last one will be used.
734
735       --krb <level>
736              (FTP)  Enable Kerberos authentication and use. The level must be
737              entered and should be one of 'clear', 'safe', 'confidential', or
738              'private'.  Should  you  use  a  level that is not one of these,
739              'private' will instead be used.
740
741              This option requires a library built with  kerberos4  or  GSSAPI
742              (GSS-Negotiate)  support. This is not very common. Use -V/--ver‐
743              sion to see if your curl supports it.
744
745              If this option is used several times, the last one will be used.
746
747       -K/--config <config file>
748              Specify which config file to read curl arguments from. The  con‐
749              fig  file  is a text file in which command line arguments can be
750              written which then will be used as if they were written  on  the
751              actual command line. Options and their parameters must be speci‐
752              fied on the same config  file  line,  separated  by  whitespace,
753              colon,  the equals sign or any combination thereof (however, the
754              preferred separator is the equals sign). If the parameter is  to
755              contain  whitespace,  the  parameter  must  be  enclosed  within
756              quotes. Within double quotes, the following escape sequences are
757              available:  \\, \", \t, \n, \r and \v. A backslash preceding any
758              other letter is ignored. If the first column of a config line is
759              a  '#' character, the rest of the line will be treated as a com‐
760              ment. Only write one option per  physical  line  in  the  config
761              file.
762
763              Specify the filename to -K/--config as '-' to make curl read the
764              file from stdin.
765
766              Note that to be able to specify a URL in the  config  file,  you
767              need  to  specify  it  using the --url option, and not by simply
768              writing the URL on its own line. So, it could  look  similar  to
769              this:
770
771              url = "http://curl.haxx.se/docs/"
772
773              Long  option  names  can  optionally be given in the config file
774              without the initial double dashes.
775
776              When curl is invoked, it always (unless -q is used) checks for a
777              default  config  file  and  uses it if found. The default config
778              file is checked for in the following places in this order:
779
780              1) curl tries to find the "home dir": It first  checks  for  the
781              CURL_HOME and then the HOME environment variables. Failing that,
782              it uses getpwuid() on UNIX-like systems (which returns the  home
783              dir  given the current user in your system). On Windows, it then
784              checks for the APPDATA variable, or as a last resort the '%USER‐
785              PROFILE%\Application Data'.
786
787              2)  On  windows, if there is no _curlrc file in the home dir, it
788              checks for one in the same dir the curl executable is placed. On
789              UNIX-like  systems,  it will simply try to load .curlrc from the
790              determined home dir.
791
792              # --- Example file ---
793              # this is a comment
794              url = "curl.haxx.se"
795              output = "curlhere.html"
796              user-agent = "superagent/1.0"
797
798              # and fetch another URL too
799              url = "curl.haxx.se/docs/manpage.html"
800              -O
801              referer = "http://nowhereatall.com/"
802              # --- End of example file ---
803
804              This option can be used multiple times to load  multiple  config
805              files.
806
807       --libcurl <file>
808              Append  this  option  to any ordinary curl command line, and you
809              will get a libcurl-using source code written to  the  file  that
810              does the equivalent of what your command-line operation does!
811
812              NOTE:  this does not properly support -F and the sending of mul‐
813              tipart formposts, so in those cases the output program  will  be
814              missing necessary calls to curl_formadd(3), and possibly more.
815
816              If  this  option is used several times, the last given file name
817              will be used. (Added in 7.16.1)
818
819       --limit-rate <speed>
820              Specify the maximum transfer rate you want  curl  to  use.  This
821              feature is useful if you have a limited pipe and you'd like your
822              transfer not to use your entire bandwidth.
823
824              The given speed is measured in bytes/second, unless a suffix  is
825              appended.   Appending  'k' or 'K' will count the number as kilo‐
826              bytes, 'm' or M' makes it megabytes, while 'g' or 'G'  makes  it
827              gigabytes. Examples: 200K, 3m and 1G.
828
829              The  given  rate  is the average speed counted during the entire
830              transfer. It means that curl might use higher transfer speeds in
831              short bursts, but over time it uses no more than the given rate.
832
833              If  you  also  use the -Y/--speed-limit option, that option will
834              take precedence and might cripple the rate-limiting slightly, to
835              help keeping the speed-limit logic working.
836
837              If this option is used several times, the last one will be used.
838
839       -l/--list-only
840              (FTP)  When listing an FTP directory, this switch forces a name-
841              only view.  Especially useful if you want to  machine-parse  the
842              contents  of  an  FTP  directory since the normal directory view
843              doesn't use a standard look or format.
844
845              This option causes an FTP NLST command to  be  sent.   Some  FTP
846              servers  list  only files in their response to NLST; they do not
847              include subdirectories and symbolic links.
848
849
850       --local-port <num>[-num]
851              Set a preferred number or range of local port numbers to use for
852              the  connection(s).   Note  that  port  numbers  by nature are a
853              scarce resource that will be busy at times so setting this range
854              to something too narrow might cause unnecessary connection setup
855              failures. (Added in 7.15.2)
856
857       -L/--location
858              (HTTP/HTTPS) If the server reports that the requested  page  has
859              moved to a different location (indicated with a Location: header
860              and a 3XX response code), this option will make  curl  redo  the
861              request  on the new place. If used together with -i/--include or
862              -I/--head, headers from all requested pages will be shown.  When
863              authentication  is  used, curl only sends its credentials to the
864              initial host. If a redirect takes curl to a different  host,  it
865              won't  be  able to intercept the user+password. See also --loca‐
866              tion-trusted on how to change this. You can limit the amount  of
867              redirects to follow by using the --max-redirs option.
868
869              When  curl follows a redirect and the request is not a plain GET
870              (for example POST or PUT), it will do the following request with
871              a GET if the HTTP response was 301, 302, or 303. If the response
872              code was any other 3xx code, curl  will  re-send  the  following
873              request using the same unmodified method.
874
875       --location-trusted
876              (HTTP/HTTPS) Like -L/--location, but will allow sending the name
877              + password to all hosts that the site may redirect to. This  may
878              or may not introduce a security breach if the site redirects you
879              to a site to which you'll send your authentication  info  (which
880              is plaintext in the case of HTTP Basic authentication).
881
882
883       --max-filesize <bytes>
884              Specify  the  maximum  size (in bytes) of a file to download. If
885              the file requested is larger than this value, the transfer  will
886              not start and curl will return with exit code 63.
887
888              NOTE:  The  file size is not always known prior to download, and
889              for such files this option has no effect even if the file trans‐
890              fer  ends  up  being larger than this given limit. This concerns
891              both FTP and HTTP transfers.
892
893       -m/--max-time <seconds>
894              Maximum time in seconds that you allow the  whole  operation  to
895              take.   This is useful for preventing your batch jobs from hang‐
896              ing for hours due to slow networks or  links  going  down.   See
897              also the --connect-timeout option.
898
899              If this option is used several times, the last one will be used.
900
901       -M/--manual
902              Manual. Display the huge help text.
903
904       -n/--netrc
905              Makes  curl  scan  the  .netrc  (_netrc  on Windows) file in the
906              user's home directory for login name and password. This is typi‐
907              cally  used for FTP on UNIX. If used with HTTP, curl will enable
908              user authentication. See netrc(4) or ftp(1) for details  on  the
909              file  format.  Curl  will not complain if that file doesn't have
910              the right permissions (it should not be either world- or  group-
911              readable).  The  environment variable "HOME" is used to find the
912              home directory.
913
914              A quick and very simple example of how  to  setup  a  .netrc  to
915              allow  curl to FTP to the machine host.domain.com with user name
916              'myself' and password 'secret' should look similar to:
917
918              machine host.domain.com login myself password secret
919
920       --netrc-optional
921              Very similar to --netrc, but this option makes the .netrc  usage
922              optional and not mandatory as the --netrc option does.
923
924       --negotiate
925              (HTTP)  Enables  GSS-Negotiate authentication. The GSS-Negotiate
926              method was designed by Microsoft and is used in their web appli‐
927              cations.  It  is  primarily  meant  as  a  support for Kerberos5
928              authentication but may be also used along with another authenti‐
929              cation method. For more information see IETF draft draft-brezak-
930              spnego-http-04.txt.
931
932              If you want to enable Negotiate for your  proxy  authentication,
933              then use --proxy-negotiate.
934
935              This  option  requires a library built with GSSAPI support. This
936              is not very common. Use -V/--version to see if your version sup‐
937              ports GSS-Negotiate.
938
939              When  using  this option, you must also provide a fake -u/--user
940              option to activate the authentication code properly.  Sending  a
941              '-u  :'  is  enough  as  the  user name and password from the -u
942              option aren't actually used.
943
944              If this option is used several times, the following  occurrences
945              make no difference.
946
947       -N/--no-buffer
948              Disables the buffering of the output stream. In normal work sit‐
949              uations, curl will use a standard buffered  output  stream  that
950              will have the effect that it will output the data in chunks, not
951              necessarily exactly when the data arrives.   Using  this  option
952              will disable that buffering.
953
954              Note  that  this  is the negated option name documented. You can
955              thus use --buffer to enforce the buffering.
956
957       --no-keepalive
958              Disables the use of keepalive messages on the TCP connection, as
959              by default curl enables them.
960
961              Note  that  this  is the negated option name documented. You can
962              thus use --keepalive to enforce keepalive.
963
964       --no-sessionid
965              (SSL) Disable curl's use of SSL session-ID caching.  By  default
966              all  transfers are done using the cache. Note that while nothing
967              should ever get hurt by attempting  to  reuse  SSL  session-IDs,
968              there seem to be broken SSL implementations in the wild that may
969              require you to disable this in order for you to succeed.  (Added
970              in 7.16.0)
971
972              Note  that  this  is the negated option name documented. You can
973              thus use --sessionid to enforce session-ID caching.
974
975       --noproxy <no-proxy-list>
976              Comma-separated list of hosts which do not use a proxy,  if  one
977              is  specified.  The only wildcard is a single * character, which
978              matches all hosts, and effectively disables the proxy. Each name
979              in  this  list  is matched as either a domain which contains the
980              hostname, or the hostname itself. For example,  local.com  would
981              match   local.com,  local.com:80,  and  www.local.com,  but  not
982              www.notlocal.com.  (Added in 7.19.4).
983
984       --ntlm (HTTP) Enables  NTLM  authentication.  The  NTLM  authentication
985              method was designed by Microsoft and is used by IIS web servers.
986              It is a proprietary protocol, reverse-engineered by clever  peo‐
987              ple and implemented in curl based on their efforts. This kind of
988              behavior should not be endorsed, you should  encourage  everyone
989              who  uses  NTLM to switch to a public and documented authentica‐
990              tion method instead, such as Digest.
991
992              If you want to enable NTLM for your proxy  authentication,  then
993              use --proxy-ntlm.
994
995              This  option  requires  a  library  built  with SSL support. Use
996              -V/--version to see if your curl supports NTLM.
997
998              If this option is used several times, the following  occurrences
999              make no difference.
1000
1001       -o/--output <file>
1002              Write output to <file> instead of stdout. If you are using {} or
1003              [] to fetch multiple documents, you can use '#'  followed  by  a
1004              number  in  the <file> specifier. That variable will be replaced
1005              with the current string for the URL being fetched. Like in:
1006
1007                curl http://{one,two}.site.com -o "file_#1.txt"
1008
1009              or use several variables like:
1010
1011                curl http://{site,host}.host[1-5].com -o "#1_#2"
1012
1013              You may use this option as many times as the number of URLs  you
1014              have.
1015
1016              See  also  the --create-dirs option to create the local directo‐
1017              ries dynamically. Specifying the output as '-' (a  single  dash)
1018              will force the output to be done to stdout.
1019
1020       -O/--remote-name
1021              Write  output to a local file named like the remote file we get.
1022              (Only the file part of the remote file is used, the path is  cut
1023              off.)
1024
1025              The  remote  file  name  to use for saving is extracted from the
1026              given URL, nothing else.
1027
1028              You may use this option as many times as the number of URLs  you
1029              have.
1030
1031       --remote-name-all
1032              This  option changes the default action for all given URLs to be
1033              dealt with as if -O/--remote-name were used for each one. So  if
1034              you want to disable that for a specific URL after --remote-name-
1035              all has been used, you must  use  "-o  -"  or  --no-remote-name.
1036              (Added in 7.19.0)
1037
1038       --pass <phrase>
1039              (SSL/SSH) Passphrase for the private key
1040
1041              If this option is used several times, the last one will be used.
1042
1043       --post301
1044              Tells  curl  to  respect  RFC  2616/10.3.2  and not convert POST
1045              requests into GET requests when following a 301 redirection. The
1046              non-RFC  behaviour  is  ubiquitous in web browsers, so curl does
1047              the conversion by default to maintain  consistency.  However,  a
1048              server  may  require  a POST to remain a POST after such a redi‐
1049              rection. This option is meaningful only when using -L/--location
1050              (Added in 7.17.1)
1051
1052       --post302
1053              Tells  curl  to  respect  RFC  2616/10.3.2  and not convert POST
1054              requests into GET requests when following a 302 redirection. The
1055              non-RFC  behaviour  is  ubiquitous in web browsers, so curl does
1056              the conversion by default to maintain  consistency.  However,  a
1057              server  may  require  a POST to remain a POST after such a redi‐
1058              rection. This option is meaningful only when using -L/--location
1059              (Added in 7.19.1)
1060
1061       --proxy-anyauth
1062              Tells  curl to pick a suitable authentication method when commu‐
1063              nicating with  the  given  proxy.  This  might  cause  an  extra
1064              request/response round-trip. (Added in 7.13.2)
1065
1066       --proxy-basic
1067              Tells  curl  to use HTTP Basic authentication when communicating
1068              with the given proxy. Use --basic for enabling HTTP Basic with a
1069              remote  host.  Basic  is  the default authentication method curl
1070              uses with proxies.
1071
1072       --proxy-digest
1073              Tells curl to use HTTP Digest authentication when  communicating
1074              with the given proxy. Use --digest for enabling HTTP Digest with
1075              a remote host.
1076
1077       --proxy-negotiate
1078              Tells curl to use HTTP Negotiate authentication when communicat‐
1079              ing  with  the  given  proxy.  Use --negotiate for enabling HTTP
1080              Negotiate with a remote host. (Added in 7.17.1)
1081
1082       --proxy-ntlm
1083              Tells curl to use HTTP NTLM  authentication  when  communicating
1084              with the given proxy. Use --ntlm for enabling NTLM with a remote
1085              host.
1086
1087       --proxy1.0 <proxyhost[:port]>
1088              Use the specified HTTP 1.0 proxy. If  the  port  number  is  not
1089              specified, it is assumed at port 1080.
1090
1091              The  only  difference  between  this  and  the HTTP proxy option
1092              (-x/--proxy), is that attempts to use CONNECT through the  proxy
1093              will  specify  an  HTTP 1.0 protocol instead of the default HTTP
1094              1.1.
1095
1096       -p/--proxytunnel
1097              When an HTTP proxy is used (-x/--proxy), this option will  cause
1098              non-HTTP  protocols  to  attempt  to  tunnel  through  the proxy
1099              instead of merely using it to do HTTP-like operations. The  tun‐
1100              nel  approach  is  made  with the HTTP proxy CONNECT request and
1101              requires that the proxy allows direct connect to the remote port
1102              number curl wants to tunnel through to.
1103
1104       --pubkey <key>
1105              (SSH)  Public  key  file name. Allows you to provide your public
1106              key in this separate file.
1107
1108              If this option is used several times, the last one will be used.
1109
1110              (As of 7.39.0, curl attempts to automatically extract the public
1111              key  from the private key file, so passing this option is gener‐
1112              ally not required. Note that this public key extraction requires
1113              libcurl  to  be linked against a copy of libssh2 1.2.8 or higher
1114              that is itself linked against OpenSSL.)
1115
1116       -P/--ftp-port <address>
1117              (FTP) Reverses the default initiator/listener  roles  when  con‐
1118              necting  with  FTP.  This  switch makes curl use active mode. In
1119              practice, curl then tells the server  to  connect  back  to  the
1120              client's specified address and port, while passive mode asks the
1121              server to setup an IP address and port for  it  to  connect  to.
1122              <address> should be one of:
1123
1124              interface
1125                     i.e  "eth0"  to  specify which interface's IP address you
1126                     want to use (Unix only)
1127
1128              IP address
1129                     i.e "192.168.10.1" to specify the exact IP address
1130
1131              host name
1132                     i.e "my.host.domain" to specify the machine
1133
1134              -      make curl pick the same IP address that is  already  used
1135                     for the control connection
1136
1137       If  this  option is used several times, the last one will be used. Dis‐
1138       able the use of PORT with --ftp-pasv. Disable the attempt  to  use  the
1139       EPRT  command  instead  of PORT by using --disable-eprt. EPRT is really
1140       PORT++.
1141
1142       Starting in 7.19.5, you can append ":[start]-[end]" to the right of the
1143       address,  to tell curl what TCP port range to use. That means you spec‐
1144       ify a port range, from a lower to a  higher  number.  A  single  number
1145       works  as well, but do note that it increases the risk of failure since
1146       the port may not be available.
1147
1148       -q     If used as the first parameter on the command line,  the  curlrc
1149              config  file  will not be read and used. See the -K/--config for
1150              details on the default config file search path.
1151
1152       -Q/--quote <command>
1153              (FTP/SFTP) Send an arbitrary command to the remote FTP  or  SFTP
1154              server.  Quote commands are sent BEFORE the transfer takes place
1155              (just after the initial PWD command in an FTP  transfer,  to  be
1156              exact). To make commands take place after a successful transfer,
1157              prefix them with a dash '-'.  To make  commands  be  sent  after
1158              libcurl  has  changed  the  working  directory,  just before the
1159              transfer command(s), prefix the command with a '+' (this is only
1160              supported  for  FTP). You may specify any number of commands. If
1161              the server returns failure for one of the commands,  the  entire
1162              operation  will  be aborted. You must send syntactically correct
1163              FTP commands as RFC959 defines to FTP servers,  or  one  of  the
1164              commands  listed below to SFTP servers.  This option can be used
1165              multiple times.
1166
1167              SFTP is a binary protocol. Unlike for  FTP,  libcurl  interprets
1168              SFTP  quote commands before sending them to the server.  Follow‐
1169              ing is the list of all supported SFTP quote commands:
1170
1171              chgrp group file
1172                     The chgrp command sets the group ID of the file named  by
1173                     the  file  operand to the group ID specified by the group
1174                     operand. The group operand is a decimal integer group ID.
1175
1176              chmod mode file
1177                     The chmod command modifies the  file  mode  bits  of  the
1178                     specified file. The mode operand is an octal integer mode
1179                     number.
1180
1181              chown user file
1182                     The chown command sets the owner of the file named by the
1183                     file  operand  to the user ID specified by the user oper‐
1184                     and. The user operand is a decimal integer user ID.
1185
1186              ln source_file target_file
1187                     The ln and symlink commands create a symbolic link at the
1188                     target_file  location  pointing  to the source_file loca‐
1189                     tion.
1190
1191              mkdir directory_name
1192                     The mkdir command creates  the  directory  named  by  the
1193                     directory_name operand.
1194
1195              pwd    The pwd command returns the absolute pathname of the cur‐
1196                     rent working directory.
1197
1198              rename source target
1199                     The rename command renames the file or directory named by
1200                     the  source  operand to the destination path named by the
1201                     target operand.
1202
1203              rm file
1204                     The rm command removes the file specified by the file op‐
1205                     erand.
1206
1207              rmdir directory
1208                     The  rmdir  command removes the directory entry specified
1209                     by the directory operand, provided it is empty.
1210
1211              symlink source_file target_file
1212                     See ln.
1213
1214       --random-file <file>
1215              (SSL) Specify the path name to file containing what will be con‐
1216              sidered  as  random  data.  The  data is used to seed the random
1217              engine for SSL connections.  See also the --egd-file option.
1218
1219       -r/--range <range>
1220              (HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial  docu‐
1221              ment)  from  a  HTTP/1.1,  FTP  or  SFTP server or a local FILE.
1222              Ranges can be specified in a number of ways.
1223
1224              0-499     specifies the first 500 bytes
1225
1226              500-999   specifies the second 500 bytes
1227
1228              -500      specifies the last 500 bytes
1229
1230              9500-     specifies the bytes from offset 9500 and forward
1231
1232              0-0,-1    specifies the first and last byte only(*)(H)
1233
1234              500-700,600-799
1235                        specifies 300 bytes from offset 500(H)
1236
1237              100-199,500-599
1238                        specifies two separate 100-byte ranges(*)(H)
1239
1240       (*) = NOTE that this will cause the server to reply  with  a  multipart
1241       response!
1242
1243       Only  digit characters (0-9) are valid in the 'start' and 'stop' fields
1244       of the 'start-stop' range syntax. If a non-digit character is given  in
1245       the  range, the server's response will be unspecified, depending on the
1246       server's configuration.
1247
1248       You should also be aware that many HTTP/1.1 servers do  not  have  this
1249       feature  enabled,  so  that  when  you  attempt  to get a range, you'll
1250       instead get the whole document.
1251
1252       FTP and SFTP range downloads only support the simple 'start-stop'  syn‐
1253       tax  (optionally  with  one of the numbers omitted). FTP use depends on
1254       the extended FTP command SIZE.
1255
1256       If this option is used several times, the last one will be used.
1257
1258       --raw  When used, it disables all internal HTTP decoding of content  or
1259              transfer  encodings  and instead makes them passed on unaltered,
1260              raw. (Added in 7.16.2)
1261
1262       -R/--remote-time
1263              When used, this will make libcurl  attempt  to  figure  out  the
1264              timestamp  of the remote file, and if that is available make the
1265              local file get that same timestamp.
1266
1267       --retry <num>
1268              If a transient error is returned when curl tries  to  perform  a
1269              transfer,  it  will retry this number of times before giving up.
1270              Setting the number to 0 makes curl do no retries (which  is  the
1271              default).  Transient  error  means either: a timeout, an FTP 5xx
1272              response code or an HTTP 5xx response code.
1273
1274              When curl is about to retry a transfer, it will first  wait  one
1275              second  and  then for all forthcoming retries it will double the
1276              waiting time until it reaches 10 minutes which then will be  the
1277              delay  between  the rest of the retries.  By using --retry-delay
1278              you  disable  this  exponential  backoff  algorithm.  See   also
1279              --retry-max-time  to  limit  the total time allowed for retries.
1280              (Added in 7.12.3)
1281
1282              If this option is  used  multiple  times,  the  last  occurrence
1283              decide the amount.
1284
1285       --retry-delay <seconds>
1286              Make  curl  sleep  this  amount of time before each retry when a
1287              transfer has failed with  a  transient  error  (it  changes  the
1288              default  backoff time algorithm between retries). This option is
1289              only interesting if --retry is also used. Setting this delay  to
1290              zero  will  make  curl  use the default backoff time.  (Added in
1291              7.12.3)
1292
1293              If this option is  used  multiple  times,  the  last  occurrence
1294              determines the amount.
1295
1296       --retry-max-time <seconds>
1297              The  retry  timer  is  reset  before the first transfer attempt.
1298              Retries will be done as usual (see --retry) as long as the timer
1299              hasn't reached this given limit. Notice that if the timer hasn't
1300              reached the limit, the request will be made and  while  perform‐
1301              ing,  it may take longer than this given time period. To limit a
1302              single request´s maximum  time,  use  -m/--max-time.   Set  this
1303              option to zero to not timeout retries. (Added in 7.12.3)
1304
1305              If  this  option  is  used  multiple  times, the last occurrence
1306              determines the amount.
1307
1308       -s/--silent
1309              Silent or quiet mode. Don't show progress meter  or  error  mes‐
1310              sages.  Makes Curl mute.
1311
1312       -S/--show-error
1313              When  used  with  -s  it  makes curl show an error message if it
1314              fails.
1315
1316       --socks4 <host[:port]>
1317              Use the specified SOCKS4 proxy. If the port number is not speci‐
1318              fied, it is assumed at port 1080. (Added in 7.15.2)
1319
1320              This  option  overrides  any previous use of -x/--proxy, as they
1321              are mutually exclusive.
1322
1323              If this option is used several times, the last one will be used.
1324
1325       --socks4a <host[:port]>
1326              Use the specified SOCKS4a proxy. If the port number is not spec‐
1327              ified, it is assumed at port 1080. (Added in 7.18.0)
1328
1329              This  option  overrides  any previous use of -x/--proxy, as they
1330              are mutually exclusive.
1331
1332              If this option is used several times, the last one will be used.
1333
1334       --socks5-hostname <host[:port]>
1335              Use the specified SOCKS5 proxy (and let the  proxy  resolve  the
1336              host  name).  If the port number is not specified, it is assumed
1337              at port 1080. (Added in 7.18.0)
1338
1339              This option overrides any previous use of  -x/--proxy,  as  they
1340              are mutually exclusive.
1341
1342              If this option is used several times, the last one will be used.
1343              (This option was  previously  wrongly  documented  and  used  as
1344              --socks without the number appended.)
1345
1346       --socks5 <host[:port]>
1347              Use  the  specified  SOCKS5  proxy  -  but resolve the host name
1348              locally. If the port number is not specified, it is  assumed  at
1349              port 1080.
1350
1351              This  option  overrides  any previous use of -x/--proxy, as they
1352              are mutually exclusive.
1353
1354              If this option is used several times, the last one will be used.
1355              (This  option  was  previously  wrongly  documented  and used as
1356              --socks without the number appended.)
1357
1358              This option (as well as --socks4) does not work with IPV6,  FTPS
1359              or LDAP.
1360
1361       --socks5-gssapi-service <servicename>
1362              The default service name for a socks server is rcmd/server-fqdn.
1363              This option allows you to change it.
1364
1365              Examples:
1366               --socks5 proxy-name --socks5-gssapi-service sockd    would  use
1367              sockd/proxy-name
1368               --socks5   proxy-name  --socks5-gssapi-service  sockd/real-name
1369              would use sockd/real-name for cases where  the  proxy-name  does
1370              not match the princpal name.
1371               (Added in 7.19.4).
1372
1373       --socks5-gssapi-nec
1374              As  part  of the gssapi negotiation a protection mode is negoti‐
1375              ated. The rfc1961 says in section  4.3/4.4  it  should  be  pro‐
1376              tected,  but  the  NEC  reference  implementation does not.  The
1377              option --socks5-gssapi-nec allows the  unprotected  exchange  of
1378              the protection mode negotiation. (Added in 7.19.4).
1379
1380       --stderr <file>
1381              Redirect  all writes to stderr to the specified file instead. If
1382              the file name is a plain '-', it is instead written  to  stdout.
1383              This  option  has no point when you're using a shell with decent
1384              redirecting capabilities.
1385
1386              If this option is used several times, the last one will be used.
1387
1388       --tcp-nodelay
1389              Turn on the TCP_NODELAY option. See the curl_easy_setopt(3)  man
1390              page for details about this option. (Added in 7.11.2)
1391
1392       -t/--telnet-option <OPT=val>
1393              Pass options to the telnet protocol. Supported options are:
1394
1395              TTYPE=<term> Sets the terminal type.
1396
1397              XDISPLOC=<X display> Sets the X display location.
1398
1399              NEW_ENV=<var,val> Sets an environment variable.
1400
1401       -T/--upload-file <file>
1402              This  transfers  the  specified local file to the remote URL. If
1403              there is no file part in the specified URL, Curl will append the
1404              local file name. NOTE that you must use a trailing / on the last
1405              directory to really prove to Curl that there is no file name  or
1406              curl will think that your last directory name is the remote file
1407              name to use. That will most likely cause the upload operation to
1408              fail.  If this is used on a HTTP(S) server, the PUT command will
1409              be used.
1410
1411              Use the file name "-" (a single dash) to use stdin instead of  a
1412              given  file.   Alternately,  the file name "." (a single period)
1413              may be specified instead of "-" to  use  stdin  in  non-blocking
1414              mode  to  allow  reading  server  output  while  stdin  is being
1415              uploaded.
1416
1417              You can specify one -T for each URL on the command line. Each -T
1418              + URL pair specifies what to upload and to where. curl also sup‐
1419              ports "globbing" of the -T argument, meaning that you can upload
1420              multiple  files  to  a single URL by using the same URL globbing
1421              style supported in the URL, like this:
1422
1423              curl -T "{file1,file2}" http://www.uploadtothissite.com
1424
1425              or even
1426
1427              curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/
1428
1429       --trace <file>
1430              Enables a full trace dump of all  incoming  and  outgoing  data,
1431              including descriptive information, to the given output file. Use
1432              "-" as filename to have the output sent to stdout.
1433
1434              This option overrides previous uses of -v/--verbose or  --trace-
1435              ascii.
1436
1437              If this option is used several times, the last one will be used.
1438
1439       --trace-ascii <file>
1440              Enables  a  full  trace  dump of all incoming and outgoing data,
1441              including descriptive information, to the given output file. Use
1442              "-" as filename to have the output sent to stdout.
1443
1444              This is very similar to --trace, but leaves out the hex part and
1445              only shows the ASCII part of the dump. It makes  smaller  output
1446              that might be easier to read for untrained humans.
1447
1448              This option overrides previous uses of -v/--verbose or --trace.
1449
1450              If this option is used several times, the last one will be used.
1451
1452       --trace-time
1453              Prepends  a  time  stamp to each trace or verbose line that curl
1454              displays.  (Added in 7.14.0)
1455
1456       -u/--user <user:password>
1457              Specify the user name and password to use for server authentica‐
1458              tion. Overrides -n/--netrc and --netrc-optional.
1459
1460              If  you  just give the user name (without entering a colon) curl
1461              will prompt for a password.
1462
1463              If you use an SSPI-enabled curl binary and do  NTLM  authentica‐
1464              tion,  you  can force curl to pick up the user name and password
1465              from your environment by simply specifying a single  colon  with
1466              this option: "-u :".
1467
1468              If this option is used several times, the last one will be used.
1469
1470       -U/--proxy-user <user:password>
1471              Specify  the user name and password to use for proxy authentica‐
1472              tion.
1473
1474              If you use an SSPI-enabled curl binary and do  NTLM  authentica‐
1475              tion,  you  can force curl to pick up the user name and password
1476              from your environment by simply specifying a single  colon  with
1477              this option: "-U :".
1478
1479              If this option is used several times, the last one will be used.
1480
1481       --url <URL>
1482              Specify  a  URL  to  fetch. This option is mostly handy when you
1483              want to specify URL(s) in a config file.
1484
1485              This option may be used any number of times.  To  control  where
1486              this URL is written, use the -o/--output or the -O/--remote-name
1487              options.
1488
1489       -v/--verbose
1490              Makes the fetching more  verbose/talkative.  Mostly  useful  for
1491              debugging.  A line starting with '>' means "header data" sent by
1492              curl, '<' means "header data" received by curl that is hidden in
1493              normal cases, and a line starting with '*' means additional info
1494              provided by curl.
1495
1496              Note  that  if  you  only  want  HTTP  headers  in  the  output,
1497              -i/--include might be the option you're looking for.
1498
1499              If  you think this option still doesn't give you enough details,
1500              consider using --trace or --trace-ascii instead.
1501
1502              This option overrides previous uses of --trace-ascii or --trace.
1503
1504              Use -s/--silent to make curl quiet.
1505
1506       -V/--version
1507              Displays information about curl and the libcurl version it uses.
1508
1509              The first line includes the full version of  curl,  libcurl  and
1510              other 3rd party libraries linked with the executable.
1511
1512              The  second  line (starts with "Protocols:") shows all protocols
1513              that libcurl reports to support.
1514
1515              The third line (starts with "Features:") shows specific features
1516              libcurl reports to offer. Available features include:
1517
1518              IPv6   You can use IPv6 with this.
1519
1520              krb4   Krb4 for FTP is supported.
1521
1522              SSL    HTTPS and FTPS are supported.
1523
1524              libz   Automatic  decompression of compressed files over HTTP is
1525                     supported.
1526
1527              NTLM   NTLM authentication is supported.
1528
1529              GSS-Negotiate
1530                     Negotiate authentication and krb5 for FTP is supported.
1531
1532              Debug  This curl uses a libcurl built with Debug.  This  enables
1533                     more  error-tracking  and memory debugging etc. For curl-
1534                     developers only!
1535
1536              AsynchDNS
1537                     This curl uses asynchronous name resolves.
1538
1539              SPNEGO SPNEGO Negotiate authentication is supported.
1540
1541              Largefile
1542                     This curl supports transfers of large files, files larger
1543                     than 2GB.
1544
1545              IDN    This curl supports IDN - international domain names.
1546
1547              SSPI   SSPI  is  supported. If you use NTLM and set a blank user
1548                     name, curl will authenticate with your current  user  and
1549                     password.
1550
1551       -w/--write-out <format>
1552              Defines what to display on stdout after a completed and success‐
1553              ful operation. The format is a string  that  may  contain  plain
1554              text mixed with any number of variables. The string can be spec‐
1555              ified as "string", to get read from a particular file you  spec‐
1556              ify  it  "@filename"  and  to  tell curl to read the format from
1557              stdin you write "@-".
1558
1559              The variables present in the output format will  be  substituted
1560              by  the  value or text that curl thinks fit, as described below.
1561              All variables are specified as %{variable_name} and to output  a
1562              normal  % you just write them as %%. You can output a newline by
1563              using \n, a carriage return with \r and a tab space with \t.
1564
1565              NOTE: The %-symbol is a special symbol in the win32-environment,
1566              where  all  occurrences  of  %  must  be doubled when using this
1567              option.
1568
1569              The variables available at this point are:
1570
1571              url_effective  The URL that was fetched last. This is most mean‐
1572                             ingful  if  you've  told curl to follow location:
1573                             headers.
1574
1575              http_code      The numerical response code that was found in the
1576                             last  retrieved  HTTP(S)  or  FTP(s) transfer. In
1577                             7.18.2 the alias response_code was added to  show
1578                             the same info.
1579
1580              http_connect   The  numerical  code  that  was found in the last
1581                             response  (from  a  proxy)  to  a  curl   CONNECT
1582                             request. (Added in 7.12.4)
1583
1584              time_total     The  total time, in seconds, that the full opera‐
1585                             tion lasted. The time will be displayed with mil‐
1586                             lisecond resolution.
1587
1588              time_namelookup
1589                             The  time,  in  seconds,  it  took from the start
1590                             until the name resolving was completed.
1591
1592              time_connect   The time, in seconds,  it  took  from  the  start
1593                             until  the  TCP  connect  to  the remote host (or
1594                             proxy) was completed.
1595
1596              time_appconnect
1597                             The time, in seconds,  it  took  from  the  start
1598                             until  the  SSL/SSH/etc  connect/handshake to the
1599                             remote host was completed. (Added in 7.19.0)
1600
1601              time_pretransfer
1602                             The time, in seconds,  it  took  from  the  start
1603                             until  the file transfer was just about to begin.
1604                             This includes all pre-transfer commands and nego‐
1605                             tiations that are specific to the particular pro‐
1606                             tocol(s) involved.
1607
1608              time_redirect  The time, in seconds, it took for all redirection
1609                             steps  include  name lookup, connect, pretransfer
1610                             and transfer before  the  final  transaction  was
1611                             started.  time_redirect shows the complete execu‐
1612                             tion time for multiple  redirections.  (Added  in
1613                             7.12.3)
1614
1615              time_starttransfer
1616                             The  time,  in  seconds,  it  took from the start
1617                             until the first byte was just about to be  trans‐
1618                             ferred.  This  includes time_pretransfer and also
1619                             the time  the  server  needed  to  calculate  the
1620                             result.
1621
1622              size_download  The total amount of bytes that were downloaded.
1623
1624              size_upload    The total amount of bytes that were uploaded.
1625
1626              size_header    The total amount of bytes of the downloaded head‐
1627                             ers.
1628
1629              size_request   The total amount of bytes that were sent  in  the
1630                             HTTP request.
1631
1632              speed_download The average download speed that curl measured for
1633                             the complete download.
1634
1635              speed_upload   The average upload speed that curl  measured  for
1636                             the complete upload.
1637
1638              content_type   The  Content-Type  of  the requested document, if
1639                             there was any.
1640
1641              num_connects   Number of new connects made in the recent  trans‐
1642                             fer. (Added in 7.12.3)
1643
1644              num_redirects  Number  of  redirects  that  were followed in the
1645                             request. (Added in 7.12.3)
1646
1647              redirect_url   When a HTTP request was made without -L to follow
1648                             redirects, this variable will show the actual URL
1649                             a redirect would take you to. (Added in 7.18.2)
1650
1651              ftp_entry_path The initial path libcurl ended up in when logging
1652                             on to the remote FTP server. (Added in 7.15.4)
1653
1654              ssl_verify_result
1655                             The  result of the SSL peer certificate verifica‐
1656                             tion that was requested. 0 means the verification
1657                             was successful. (Added in 7.19.0)
1658
1659       If this option is used several times, the last one will be used.
1660
1661       -x/--proxy <proxyhost[:port]>
1662              Use  the  specified HTTP proxy. If the port number is not speci‐
1663              fied, it is assumed at port 1080.
1664
1665              This option overrides existing environment  variables  that  set
1666              the  proxy  to use. If there's an environment variable setting a
1667              proxy, you can set proxy to "" to override it.
1668
1669              Note that all operations that are performed over  a  HTTP  proxy
1670              will  transparently  be converted to HTTP. It means that certain
1671              protocol specific operations might not be available. This is not
1672              the  case  if you can tunnel through the proxy, as done with the
1673              -p/--proxytunnel option.
1674
1675              Starting with 7.14.1, the proxy host can be specified the  exact
1676              same  way as the proxy environment variables, including the pro‐
1677              tocol prefix (http://) and the embedded user + password.
1678
1679              If this option is used several times, the last one will be used.
1680
1681       -X/--request <command>
1682              (HTTP) Specifies a custom request method to use when communicat‐
1683              ing  with  the  HTTP server.  The specified request will be used
1684              instead of the method otherwise used (which  defaults  to  GET).
1685              Read  the  HTTP  1.1 specification for details and explanations.
1686              Common additional HTTP requests  include  PUT  and  DELETE,  but
1687              related technologies like WebDAV offers PROPFIND, COPY, MOVE and
1688              more.
1689
1690              (FTP) Specifies a custom FTP command to use instead of LIST when
1691              doing file lists with FTP.
1692
1693              If this option is used several times, the last one will be used.
1694
1695       -y/--speed-time <time>
1696              If a download is slower than speed-limit bytes per second during
1697              a speed-time period, the download gets aborted. If speed-time is
1698              used, the default speed-limit will be 1 unless set with -Y.
1699
1700              This  option  controls  transfers  and thus will not affect slow
1701              connects etc. If this is a concern for you, try  the  --connect-
1702              timeout option.
1703
1704              If this option is used several times, the last one will be used.
1705
1706       -Y/--speed-limit <speed>
1707              If a download is slower than this given speed (in bytes per sec‐
1708              ond) for speed-time seconds it gets aborted. speed-time  is  set
1709              with -y and is 30 if not set.
1710
1711              If this option is used several times, the last one will be used.
1712
1713       -z/--time-cond <date expression>
1714              (HTTP/FTP)  Request a file that has been modified later than the
1715              given time and date, or one that has been modified  before  that
1716              time. The date expression can be all sorts of date strings or if
1717              it doesn't match any internal ones, it tries  to  get  the  time
1718              from  a  given  file  name  instead! See the curl_getdate(3) man
1719              pages for date expression details.
1720
1721              Start the date expression with a dash (-) to make it request for
1722              a  document that is older than the given date/time, default is a
1723              document that is newer than the specified date/time.
1724
1725              If this option is used several times, the last one will be used.
1726
1727       --max-redirs <num>
1728              Set  maximum  number  of  redirection-followings   allowed.   If
1729              -L/--location  is  used, this option can be used to prevent curl
1730              from following redirections "in absurdum". By default, the limit
1731              is set to 50 redirections. Set this option to -1 to make it lim‐
1732              itless.
1733
1734              If this option is used several times, the last one will be used.
1735
1736       -0/--http1.0
1737              (HTTP) Forces curl to issue its requests using HTTP 1.0  instead
1738              of using its internally preferred: HTTP 1.1.
1739
1740       -1/--tlsv1
1741              (SSL) Forces curl to use TLS version 1.x when negotiating with a
1742              remote TLS server.  You can use  options  --tlsv1.0,  --tlsv1.1,
1743              and  --tlsv1.2 to control the TLS version more precisely (if the
1744              SSL backend in use supports such a level of control).
1745
1746       --tlsv1.0
1747              (SSL) Forces curl to use TLS version 1.0 when negotiating with a
1748              remote TLS server.  (Added in 7.34.0)
1749
1750       --tlsv1.1
1751              (SSL) Forces curl to use TLS version 1.1 when negotiating with a
1752              remote TLS server.  (Added in 7.34.0)
1753
1754       --tlsv1.2
1755              (SSL) Forces curl to use TLS version 1.2 when negotiating with a
1756              remote TLS server.  (Added in 7.34.0)
1757
1758       -2/--sslv2
1759              (SSL)  Forces  curl to use SSL version 2 when negotiating with a
1760              remote SSL server.
1761
1762       -3/--sslv3
1763              (SSL) Forces curl to use SSL version 3 when negotiating  with  a
1764              remote SSL server.
1765
1766       -4/--ipv4
1767              If  libcurl  is  capable  of resolving an address to multiple IP
1768              versions (which it is if it is IPv6-capable), this option  tells
1769              libcurl to resolve names to IPv4 addresses only.
1770
1771       -6/--ipv6
1772              If  libcurl  is  capable  of resolving an address to multiple IP
1773              versions (which it is if it is IPv6-capable), this option  tells
1774              libcurl to resolve names to IPv6 addresses only.
1775
1776       -#/--progress-bar
1777              Make curl display progress information as a progress bar instead
1778              of the default statistics.
1779

FILES

1781       ~/.curlrc
1782              Default config file, see -K/--config for details.
1783

ENVIRONMENT

1785       The environment variables can be specified in lower case or upper case.
1786       The lower case version has precedence. http_proxy is an exception as it
1787       is only available in lower case.
1788
1789       http_proxy [protocol://]<host>[:port]
1790              Sets the proxy server to use for HTTP.
1791
1792       HTTPS_PROXY [protocol://]<host>[:port]
1793              Sets the proxy server to use for HTTPS.
1794
1795       FTP_PROXY [protocol://]<host>[:port]
1796              Sets the proxy server to use for FTP.
1797
1798       ALL_PROXY [protocol://]<host>[:port]
1799              Sets the proxy server to use if no  protocol-specific  proxy  is
1800              set.
1801
1802       NO_PROXY <comma-separated list of hosts>
1803              list  of  host names that shouldn't go through any proxy. If set
1804              to a asterisk '*' only, it matches all hosts.
1805

EXIT CODES

1807       There are a bunch of different  error  codes  and  their  corresponding
1808       error  messages  that  may appear during bad conditions. At the time of
1809       this writing, the exit codes are:
1810
1811       1      Unsupported protocol. This build of curl has no support for this
1812              protocol.
1813
1814       2      Failed to initialize.
1815
1816       3      URL malformed. The syntax was not correct.
1817
1818       5      Couldn't  resolve  proxy.  The  given  proxy  host  could not be
1819              resolved.
1820
1821       6      Couldn't resolve host. The given remote host was not resolved.
1822
1823       7      Failed to connect to host.
1824
1825       8      FTP weird server reply.  The  server  sent  data  curl  couldn't
1826              parse.
1827
1828       9      FTP  access  denied. The server denied login or denied access to
1829              the particular resource or directory you wanted to  reach.  Most
1830              often  you  tried to change to a directory that doesn't exist on
1831              the server.
1832
1833       11     FTP weird PASS reply. Curl couldn't parse the reply sent to  the
1834              PASS request.
1835
1836       13     FTP  weird PASV reply, Curl couldn't parse the reply sent to the
1837              PASV request.
1838
1839       14     FTP weird 227 format.  Curl  couldn't  parse  the  227-line  the
1840              server sent.
1841
1842       15     FTP  can't  get host. Couldn't resolve the host IP we got in the
1843              227-line.
1844
1845       17     FTP couldn't set binary.  Couldn't  change  transfer  method  to
1846              binary.
1847
1848       18     Partial file. Only a part of the file was transferred.
1849
1850       19     FTP  couldn't download/access the given file, the RETR (or simi‐
1851              lar) command failed.
1852
1853       21     FTP quote error. A quote command returned error from the server.
1854
1855       22     HTTP page not retrieved. The requested  url  was  not  found  or
1856              returned  another  error  with  the HTTP error code being 400 or
1857              above. This return code only appears if -f/--fail is used.
1858
1859       23     Write error. Curl couldn't write data to a local  filesystem  or
1860              similar.
1861
1862       25     FTP  couldn't  STOR  file. The server denied the STOR operation,
1863              used for FTP uploading.
1864
1865       26     Read error. Various reading problems.
1866
1867       27     Out of memory. A memory allocation request failed.
1868
1869       28     Operation timeout. The specified  time-out  period  was  reached
1870              according to the conditions.
1871
1872       30     FTP  PORT  failed.  The PORT command failed. Not all FTP servers
1873              support the PORT  command,  try  doing  a  transfer  using  PASV
1874              instead!
1875
1876       31     FTP  couldn't use REST. The REST command failed. This command is
1877              used for resumed FTP transfers.
1878
1879       33     HTTP range error. The range "command" didn't work.
1880
1881       34     HTTP post error. Internal post-request generation error.
1882
1883       35     SSL connect error. The SSL handshaking failed.
1884
1885       36     FTP bad download resume. Couldn't continue  an  earlier  aborted
1886              download.
1887
1888       37     FILE couldn't read file. Failed to open the file. Permissions?
1889
1890       38     LDAP cannot bind. LDAP bind operation failed.
1891
1892       39     LDAP search failed.
1893
1894       41     Function not found. A required LDAP function was not found.
1895
1896       42     Aborted by callback. An application told curl to abort the oper‐
1897              ation.
1898
1899       43     Internal error. A function was called with a bad parameter.
1900
1901       45     Interface error. A specified outgoing  interface  could  not  be
1902              used.
1903
1904       47     Too many redirects. When following redirects, curl hit the maxi‐
1905              mum amount.
1906
1907       48     Unknown TELNET option specified.
1908
1909       49     Malformed telnet option.
1910
1911       51     The peer's SSL certificate or SSH MD5 fingerprint was not ok.
1912
1913       52     The server didn't reply anything, which here  is  considered  an
1914              error.
1915
1916       53     SSL crypto engine not found.
1917
1918       54     Cannot set SSL crypto engine as default.
1919
1920       55     Failed sending network data.
1921
1922       56     Failure in receiving network data.
1923
1924       58     Problem with the local certificate.
1925
1926       59     Couldn't use specified SSL cipher.
1927
1928       60     Peer  certificate cannot be authenticated with known CA certifi‐
1929              cates.
1930
1931       61     Unrecognized transfer encoding.
1932
1933       62     Invalid LDAP URL.
1934
1935       63     Maximum file size exceeded.
1936
1937       64     Requested FTP SSL level failed.
1938
1939       65     Sending the data requires a rewind that failed.
1940
1941       66     Failed to initialize SSL Engine.
1942
1943       67     The user name, password, or similar was not  accepted  and  curl
1944              failed to log in.
1945
1946       68     File not found on TFTP server.
1947
1948       69     Permission problem on TFTP server.
1949
1950       70     Out of disk space on TFTP server.
1951
1952       71     Illegal TFTP operation.
1953
1954       72     Unknown TFTP transfer ID.
1955
1956       73     File already exists (TFTP).
1957
1958       74     No such user (TFTP).
1959
1960       75     Character conversion failed.
1961
1962       76     Character conversion functions required.
1963
1964       77     Problem with reading the SSL CA cert (path? access rights?).
1965
1966       78     The resource referenced in the URL does not exist.
1967
1968       79     An unspecified error occurred during the SSH session.
1969
1970       80     Failed to shut down the SSL connection.
1971
1972       82     Could  not  load  CRL  file,  missing  or wrong format (added in
1973              7.19.0).
1974
1975       83     Issuer check failed (added in 7.19.0).
1976
1977       XX     More error codes will appear here in future releases. The exist‐
1978              ing ones are meant to never change.
1979

AUTHORS / CONTRIBUTORS

1981       Daniel  Stenberg is the main author, but the whole list of contributors
1982       is found in the separate THANKS file.
1983

WWW

1985       http://curl.haxx.se
1986

FTP

1988       ftp://ftp.sunet.se/pub/www/utilities/curl/
1989

SEE ALSO

1991       ftp(1), wget(1)
1992
1993
1994
1995
1996Curl 7.19.0                      10 July 2008                          curl(1)
Impressum