1curl(1) Curl Manual curl(1)
2
3
4
6 curl - transfer a URL
7
9 curl [options] [URL...]
10
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
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
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
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
1845 ~/.curlrc
1846 Default config file, see -K/--config for details.
1847
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
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
2045 Daniel Stenberg is the main author, but the whole list of contributors
2046 is found in the separate THANKS file.
2047
2049 http://curl.haxx.se
2050
2052 ftp://ftp.sunet.se/pub/www/utilities/curl/
2053
2055 ftp(1), wget(1)
2056
2057
2058
2059
2060Curl 7.20.0 28 November 2009 curl(1)