curl/docs/options-in-versions

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

277 lines
12 KiB
Plaintext
Raw Normal View History

_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
This document lists all command line options present in curl, together with
exact information about the first curl version that supports it. The options
are sorted alphabetically on the long name.
Long (short) Introduced
--abstract-unix-socket 7.53.0
--alt-svc 7.64.1
--anyauth 7.10.6
--append (-a) 4.8
2020-07-03 20:50:06 +08:00
--aws-sigv4 7.75.0
--basic 7.10.6
--ca-native 8.2.0
--cacert 7.5
--capath 7.9.8
--cert (-E) 5.0
--cert-status 7.41.0
--cert-type 7.9.3
--ciphers 7.9
--compressed 7.10
--compressed-ssh 7.56.0
--config (-K) 4.10
--connect-timeout 7.7
--connect-to 7.49.0
--continue-at (-C) 4.8
--cookie (-b) 4.9
--cookie-jar (-c) 7.9
--create-dirs 7.10.3
--create-file-mode 7.75.0
--crlf 5.7
--crlfile 7.19.7
--curves 7.73.0
--data (-d) 4.0
--data-ascii 7.2
--data-binary 7.2
--data-raw 7.43.0
--data-urlencode 7.18.0
--delegation 7.22.0
--digest 7.10.6
--disable (-q) 5.0
--disable-eprt 7.10.5
--disable-epsv 7.9.2
--disallow-username-in-url 7.61.0
--dns-interface 7.33.0
--dns-ipv4-addr 7.33.0
--dns-ipv6-addr 7.33.0
--dns-servers 7.33.0
--doh-cert-status 7.76.0
--doh-insecure 7.76.0
--doh-url 7.62.0
--dump-ca-embed 8.10.0
--dump-header (-D) 5.7
--ech 8.8.0
--egd-file 7.7
--engine 7.9.3
--etag-compare 7.68.0
--etag-save 7.68.0
--expect100-timeout 7.47.0
--fail (-f) 4.0
--fail-early 7.52.0
--fail-with-body 7.76.0
--false-start 7.42.0
--form (-F) 5.0
--form-escape 7.81.0
--form-string 7.13.2
--ftp-account 7.13.0
--ftp-alternative-to-user 7.15.5
--ftp-create-dirs 7.10.7
--ftp-method 7.15.1
--ftp-pasv 7.11.0
--ftp-port (-P) 4.0
--ftp-pret 7.20.0
--ftp-skip-pasv-ip 7.14.2
--ftp-ssl-ccc 7.16.1
--ftp-ssl-ccc-mode 7.16.2
--ftp-ssl-control 7.16.0
--get (-G) 7.8.1
--globoff (-g) 7.6
--happy-eyeballs-timeout-ms 7.59.0
--haproxy-protocol 7.60.0
--haproxy-clientip 8.2.0
--head (-I) 4.0
--header (-H) 5.0
--help (-h) 4.0
--hostpubmd5 7.17.1
--hostpubsha256 7.80.0
--hsts 7.74.0
--http0.9 7.64.0
--http1.0 (-0) 7.9.1
--http1.1 7.33.0
--http2 7.33.0
--http2-prior-knowledge 7.49.0
--http3 7.66.0
--http3-only 7.88.0
--ignore-content-length 7.14.1
--ip-tos 8.9.0
--ipfs-gateway 8.4.0
--include (-i) 4.8
--insecure (-k) 7.10
--interface 7.3
--ipv4 (-4) 7.10.8
--ipv6 (-6) 7.10.8
--json 7.82.0
--junk-session-cookies (-j) 7.9.7
--keepalive-cnt 8.9.0
--keepalive-time 7.18.0
--key 7.9.3
--key-type 7.9.3
--krb 7.3
--libcurl 7.16.1
--limit-rate 7.10
--list-only (-l) 4.0
--local-port 7.15.2
--location (-L) 4.9
--location-trusted 7.10.4
--login-options 7.34.0
--mail-auth 7.25.0
--mail-from 7.20.0
--mail-rcpt 7.20.0
--mail-rcpt-allowfails 7.69.0
--manual (-M) 5.2
--max-filesize 7.10.8
--max-redirs 7.5
--max-time (-m) 4.0
--metalink 7.27.0
curl: (on linux) add MPTCP support Multipath TCP (MPTCP), standardized in RFC8684 [1], is a TCP extension that enables a TCP connection to use different paths. Multipath TCP has been used for several use cases. On smartphones, MPTCP enables seamless handovers between cellular and Wi-Fi networks while preserving established connections. This use-case is what pushed Apple to use MPTCP since 2013 in multiple applications [2]. On dual-stack hosts, Multipath TCP enables the TCP connection to automatically use the best performing path, either IPv4 or IPv6. If one path fails, MPTCP automatically uses the other path. To benefit from MPTCP, both the client and the server have to support it. Multipath TCP is a backward-compatible TCP extension that is enabled by default on recent Linux distributions (Debian, Ubuntu, Redhat, ...). Multipath TCP is included in the Linux kernel since version 5.6 [3]. To use it on Linux, an application must explicitly enable it when creating the socket. No need to change anything else in the application. This attached patch adds an --mptcp option which allows the creation of an MPTCP socket instead of TCP on Linux. If Multipath TCP is not supported on the system, an error will be reported. It is important to note that if the end server doesn't support MPTCP, the connection will continue after a seamless fallback to TCP. Link: https://www.rfc-editor.org/rfc/rfc8684.html [1] Link: https://www.tessares.net/apples-mptcp-story-so-far/ [2] Link: https://www.mptcp.dev [3] Co-developed-by: Dorian Craps (@CrapsDorian) <doriancraps@gmail.com> Co-developed-by: Olivier Bonaventure (@obonaventure) <Olivier.Bonaventure@uclouvain.be> Co-developed-by: Matthieu Baerts (@matttbe) <matttbe@kernel.org> Signed-off-by: Dorian Craps <dorian.craps@student.vinci.be> Closes #13278
2024-04-04 17:42:50 +08:00
--mptcp 8.9.0
--negotiate 7.10.6
--netrc (-n) 4.6
--netrc-file 7.21.5
--netrc-optional 7.9.8
--next (-:) 7.36.0
--no-alpn 7.36.0
--no-buffer (-N) 6.5
--no-clobber 7.83.0
--no-keepalive 7.18.0
--no-npn 7.36.0
--no-progress-meter 7.67.0
--no-sessionid 7.16.0
--noproxy 7.19.4
--ntlm 7.10.6
--ntlm-wb 7.22.0
--oauth2-bearer 7.33.0
--output (-o) 4.0
--output-dir 7.73.0
--parallel (-Z) 7.66.0
--parallel-immediate 7.68.0
--parallel-max 7.66.0
--pass 7.9.3
--path-as-is 7.42.0
--pinnedpubkey 7.39.0
--post301 7.17.1
--post302 7.19.1
--post303 7.26.0
--preproxy 7.52.0
--progress-bar (-#) 5.10
--proto 7.20.2
--proto-default 7.45.0
--proto-redir 7.20.2
--proxy (-x) 4.0
--proxy-anyauth 7.13.2
--proxy-basic 7.12.0
--proxy-ca-native 8.2.0
--proxy-cacert 7.52.0
--proxy-capath 7.52.0
--proxy-cert 7.52.0
--proxy-cert-type 7.52.0
--proxy-ciphers 7.52.0
--proxy-crlfile 7.52.0
--proxy-digest 7.12.0
--proxy-header 7.37.0
--proxy-http2 8.1.0
--proxy-insecure 7.52.0
--proxy-key 7.52.0
--proxy-key-type 7.52.0
--proxy-negotiate 7.17.1
--proxy-ntlm 7.10.7
--proxy-pass 7.52.0
--proxy-pinnedpubkey 7.59.0
--proxy-service-name 7.43.0
--proxy-ssl-allow-beast 7.52.0
--proxy-ssl-auto-client-cert 7.77.0
--proxy-tls13-ciphers 7.61.0
--proxy-tlsauthtype 7.52.0
--proxy-tlspassword 7.52.0
--proxy-tlsuser 7.52.0
--proxy-tlsv1 7.52.0
--proxy-user (-U) 4.0
--proxy1.0 7.19.4
--proxytunnel (-p) 7.3
--pubkey 7.16.2
--quote (-Q) 5.3
--random-file 7.7
--range (-r) 4.0
--rate 7.84.0
--raw 7.16.2
--referer (-e) 4.0
--remote-header-name (-J) 7.20.0
--remote-name (-O) 4.0
--remote-name-all 7.19.0
--remote-time (-R) 7.9
--remove-on-error 7.83.0
--request (-X) 6.0
--request-target 7.55.0
--resolve 7.21.3
--retry 7.12.3
--retry-all-errors 7.71.0
--retry-connrefused 7.52.0
--retry-delay 7.12.3
--retry-max-time 7.12.3
--sasl-authzid 7.66.0
--sasl-ir 7.31.0
--service-name 7.43.0
--show-error (-S) 5.9
--silent (-s) 4.0
--socks4 7.15.2
--socks4a 7.18.0
--socks5 7.18.0
--socks5-basic 7.55.0
--socks5-gssapi 7.55.0
--socks5-gssapi-nec 7.19.4
--socks5-gssapi-service 7.19.4
--socks5-hostname 7.18.0
--speed-limit (-Y) 4.7
--speed-time (-y) 4.7
--ssl 7.20.0
--ssl-allow-beast 7.25.0
--ssl-auto-client-cert 7.77.0
--ssl-no-revoke 7.44.0
--ssl-reqd 7.20.0
--ssl-revoke-best-effort 7.70.0
--sslv2 (-2) 5.9
--sslv3 (-3) 5.9
--stderr 6.2
--styled-output 7.61.0
--suppress-connect-headers 7.54.0
--tcp-fastopen 7.49.0
--tcp-nodelay 7.11.2
--telnet-option (-t) 7.7
--tftp-blksize 7.20.0
--tftp-no-options 7.48.0
--time-cond (-z) 5.8
--tls-max 7.54.0
--tls13-ciphers 7.61.0
--tlsauthtype 7.21.4
--tlspassword 7.21.4
--tlsuser 7.21.4
--tlsv1 (-1) 7.9.2
--tlsv1.0 7.34.0
--tlsv1.1 7.34.0
--tlsv1.2 7.34.0
--tlsv1.3 7.52.0
--tr-encoding 7.21.6
--trace 7.9.7
--trace-ascii 7.9.7
--trace-config 8.3.0
--trace-ids 8.2.0
--trace-time 7.14.0
--unix-socket 7.40.0
--upload-file (-T) 4.0
--url 7.5
--url-query 7.87.0
--use-ascii (-B) 5.0
--user (-u) 4.0
--user-agent (-A) 4.5.1
tool: add "variable" support Add support for command line variables. Set variables with --variable name=content or --variable name@file (where "file" can be stdin if set to a single dash (-)). Variable content is expanded in option parameters using "{{name}}" (without the quotes) if the option name is prefixed with "--expand-". This gets the contents of the variable "name" inserted, or a blank if the name does not exist as a variable. Insert "{{" verbatim in the string by prefixing it with a backslash, like "\\{{". Import an environment variable with --variable %name. It makes curl exit with an error if the environment variable is not set. It can also rather get a default value if the variable does not exist, using =content or @file like shown above. Example: get the USER environment variable into the URL: --variable %USER --expand-url = "https://example.com/api/{{USER}}/method" When expanding variables, curl supports a set of functions that can make the variable contents more convenient to use. It can trim leading and trailing white space with "trim", output the contents as a JSON quoted string with "json", URL encode it with "url" and base 64 encode it with "b64". To apply functions to a variable expansion, add them colon separated to the right side of the variable. They are then performed in a left to right order. Example: get the contents of a file called $HOME/.secret into a variable called "fix". Make sure that the content is trimmed and percent-encoded sent as POST data: --variable %HOME=/home/default --expand-variable fix@{{HOME}}/.secret --expand-data "{{fix:trim:url}}" https://example.com/ Documented. Many new test cases. Co-brainstormed-by: Emanuele Torre Assisted-by: Jat Satiro Closes #11346
2023-07-31 17:50:28 +08:00
--variable 8.3.0
--verbose (-v) 4.0
--version (-V) 4.0
--vlan-priority 8.9.0
--write-out (-w) 6.5
--xattr 7.21.3