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

FILES

1845       ~/.curlrc
1846              Default config file, see -K/--config for details.
1847

ENVIRONMENT

1849       The environment variables can be specified in lower case or upper case.
1850       The lower case version has precedence. http_proxy is an exception as it
1851       is only available in lower case.
1852
1853       http_proxy [protocol://]<host>[:port]
1854              Sets the proxy server to use for HTTP.
1855
1856       HTTPS_PROXY [protocol://]<host>[:port]
1857              Sets the proxy server to use for HTTPS.
1858
1859       FTP_PROXY [protocol://]<host>[:port]
1860              Sets the proxy server to use for FTP.
1861
1862       ALL_PROXY [protocol://]<host>[:port]
1863              Sets the proxy server to use if no  protocol-specific  proxy  is
1864              set.
1865
1866       NO_PROXY <comma-separated list of hosts>
1867              list  of  host names that shouldn't go through any proxy. If set
1868              to a asterisk '*' only, it matches all hosts.
1869

EXIT CODES

1871       There are a bunch of different  error  codes  and  their  corresponding
1872       error  messages  that  may appear during bad conditions. At the time of
1873       this writing, the exit codes are:
1874
1875       1      Unsupported protocol. This build of curl has no support for this
1876              protocol.
1877
1878       2      Failed to initialize.
1879
1880       3      URL malformed. The syntax was not correct.
1881
1882       5      Couldn't  resolve  proxy.  The  given  proxy  host  could not be
1883              resolved.
1884
1885       6      Couldn't resolve host. The given remote host was not resolved.
1886
1887       7      Failed to connect to host.
1888
1889       8      FTP weird server reply.  The  server  sent  data  curl  couldn't
1890              parse.
1891
1892       9      FTP  access  denied. The server denied login or denied access to
1893              the particular resource or directory you wanted to  reach.  Most
1894              often  you  tried to change to a directory that doesn't exist on
1895              the server.
1896
1897       11     FTP weird PASS reply. Curl couldn't parse the reply sent to  the
1898              PASS request.
1899
1900       13     FTP  weird PASV reply, Curl couldn't parse the reply sent to the
1901              PASV request.
1902
1903       14     FTP weird 227 format.  Curl  couldn't  parse  the  227-line  the
1904              server sent.
1905
1906       15     FTP  can't  get host. Couldn't resolve the host IP we got in the
1907              227-line.
1908
1909       17     FTP couldn't set binary.  Couldn't  change  transfer  method  to
1910              binary.
1911
1912       18     Partial file. Only a part of the file was transferred.
1913
1914       19     FTP  couldn't download/access the given file, the RETR (or simi‐
1915              lar) command failed.
1916
1917       21     FTP quote error. A quote command returned error from the server.
1918
1919       22     HTTP page not retrieved. The requested  url  was  not  found  or
1920              returned  another  error  with  the HTTP error code being 400 or
1921              above. This return code only appears if -f/--fail is used.
1922
1923       23     Write error. Curl couldn't write data to a local  filesystem  or
1924              similar.
1925
1926       25     FTP  couldn't  STOR  file. The server denied the STOR operation,
1927              used for FTP uploading.
1928
1929       26     Read error. Various reading problems.
1930
1931       27     Out of memory. A memory allocation request failed.
1932
1933       28     Operation timeout. The specified  time-out  period  was  reached
1934              according to the conditions.
1935
1936       30     FTP  PORT  failed.  The PORT command failed. Not all FTP servers
1937              support the PORT  command,  try  doing  a  transfer  using  PASV
1938              instead!
1939
1940       31     FTP  couldn't use REST. The REST command failed. This command is
1941              used for resumed FTP transfers.
1942
1943       33     HTTP range error. The range "command" didn't work.
1944
1945       34     HTTP post error. Internal post-request generation error.
1946
1947       35     SSL connect error. The SSL handshaking failed.
1948
1949       36     FTP bad download resume. Couldn't continue  an  earlier  aborted
1950              download.
1951
1952       37     FILE couldn't read file. Failed to open the file. Permissions?
1953
1954       38     LDAP cannot bind. LDAP bind operation failed.
1955
1956       39     LDAP search failed.
1957
1958       41     Function not found. A required LDAP function was not found.
1959
1960       42     Aborted by callback. An application told curl to abort the oper‐
1961              ation.
1962
1963       43     Internal error. A function was called with a bad parameter.
1964
1965       45     Interface error. A specified outgoing  interface  could  not  be
1966              used.
1967
1968       47     Too many redirects. When following redirects, curl hit the maxi‐
1969              mum amount.
1970
1971       48     Unknown TELNET option specified.
1972
1973       49     Malformed telnet option.
1974
1975       51     The peer's SSL certificate or SSH MD5 fingerprint was not ok.
1976
1977       52     The server didn't reply anything, which here  is  considered  an
1978              error.
1979
1980       53     SSL crypto engine not found.
1981
1982       54     Cannot set SSL crypto engine as default.
1983
1984       55     Failed sending network data.
1985
1986       56     Failure in receiving network data.
1987
1988       58     Problem with the local certificate.
1989
1990       59     Couldn't use specified SSL cipher.
1991
1992       60     Peer  certificate cannot be authenticated with known CA certifi‐
1993              cates.
1994
1995       61     Unrecognized transfer encoding.
1996
1997       62     Invalid LDAP URL.
1998
1999       63     Maximum file size exceeded.
2000
2001       64     Requested FTP SSL level failed.
2002
2003       65     Sending the data requires a rewind that failed.
2004
2005       66     Failed to initialise SSL Engine.
2006
2007       67     The user name, password, or similar was not  accepted  and  curl
2008              failed to log in.
2009
2010       68     File not found on TFTP server.
2011
2012       69     Permission problem on TFTP server.
2013
2014       70     Out of disk space on TFTP server.
2015
2016       71     Illegal TFTP operation.
2017
2018       72     Unknown TFTP transfer ID.
2019
2020       73     File already exists (TFTP).
2021
2022       74     No such user (TFTP).
2023
2024       75     Character conversion failed.
2025
2026       76     Character conversion functions required.
2027
2028       77     Problem with reading the SSL CA cert (path? access rights?).
2029
2030       78     The resource referenced in the URL does not exist.
2031
2032       79     An unspecified error occurred during the SSH session.
2033
2034       80     Failed to shut down the SSL connection.
2035
2036       82     Could  not  load  CRL  file,  missing  or wrong format (added in
2037              7.19.0).
2038
2039       83     Issuer check failed (added in 7.19.0).
2040
2041       XX     More error codes will appear here in future releases. The exist‐
2042              ing ones are meant to never change.
2043

AUTHORS / CONTRIBUTORS

2045       Daniel  Stenberg is the main author, but the whole list of contributors
2046       is found in the separate THANKS file.
2047

WWW

2049       http://curl.haxx.se
2050

FTP

2052       ftp://ftp.sunet.se/pub/www/utilities/curl/
2053

SEE ALSO

2055       ftp(1), wget(1)
2056
2057
2058
2059
2060Curl 7.20.0                    28 November 2009                        curl(1)
Impressum