198 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| .\" **************************************************************************
 | |
| .\" *                                  _   _ ____  _
 | |
| .\" *  Project                     ___| | | |  _ \| |
 | |
| .\" *                             / __| | | | |_) | |
 | |
| .\" *                            | (__| |_| |  _ <| |___
 | |
| .\" *                             \___|\___/|_| \_\_____|
 | |
| .\" *
 | |
| .\" * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
 | |
| .\" *
 | |
| .\" * This software is licensed as described in the file COPYING, which
 | |
| .\" * you should have received as part of this distribution. The terms
 | |
| .\" * are also available at https://curl.se/docs/copyright.html.
 | |
| .\" *
 | |
| .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 | |
| .\" * copies of the Software, and permit persons to whom the Software is
 | |
| .\" * furnished to do so, under the terms of the COPYING file.
 | |
| .\" *
 | |
| .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | |
| .\" * KIND, either express or implied.
 | |
| .\" *
 | |
| .\" **************************************************************************
 | |
| .\"
 | |
| .\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
 | |
| .\"
 | |
| .TH curl 1 "%DATE" "curl %VERSION" "curl Manual"
 | |
| .SH NAME
 | |
| curl \- transfer a URL
 | |
| .SH SYNOPSIS
 | |
| .B curl [options / URLs]
 | |
| .SH DESCRIPTION
 | |
| **curl** is a tool for transferring data from or to a server. It supports these
 | |
| protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS,
 | |
| LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP,
 | |
| SMTPS, TELNET or TFTP. The command is designed to work without user
 | |
| interaction.
 | |
| 
 | |
| curl offers a busload of useful tricks like proxy support, user
 | |
| authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer
 | |
| resume and more. As you will see below, the number of features will make your
 | |
| head spin!
 | |
| 
 | |
| curl is powered by libcurl for all transfer-related features. See
 | |
| *libcurl(3)* for details.
 | |
| .SH URL
 | |
| The URL syntax is protocol-dependent. You find a detailed description in
 | |
| RFC 3986.
 | |
| 
 | |
| You can specify multiple URLs or parts of URLs by writing part sets within
 | |
| braces and quoting the URL as in:
 | |
| 
 | |
|   "http://site.{one,two,three}.com"
 | |
| 
 | |
| or you can get sequences of alphanumeric series by using [] as in:
 | |
| 
 | |
|   "ftp://ftp.example.com/file[1-100].txt"
 | |
| 
 | |
|   "ftp://ftp.example.com/file[001-100].txt"    (with leading zeros)
 | |
| 
 | |
|   "ftp://ftp.example.com/file[a-z].txt"
 | |
| 
 | |
| Nested sequences are not supported, but you can use several ones next to each
 | |
| other:
 | |
| 
 | |
|   "http://example.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html"
 | |
| 
 | |
| You can specify any amount of URLs on the command line. They will be fetched
 | |
| in a sequential manner in the specified order. You can specify command line
 | |
| options and URLs mixed and in any order on the command line.
 | |
| 
 | |
| You can specify a step counter for the ranges to get every Nth number or
 | |
| letter:
 | |
| 
 | |
|   "http://example.com/file[1-100:10].txt"
 | |
| 
 | |
|   "http://example.com/file[a-z:2].txt"
 | |
| 
 | |
| When using [] or {} sequences when invoked from a command line prompt, you
 | |
| probably have to put the full URL within double quotes to avoid the shell from
 | |
| interfering with it. This also goes for other characters treated special, like
 | |
| for example '&', '?' and '*'.
 | |
| 
 | |
| Provide the IPv6 zone index in the URL with an escaped percentage sign and the
 | |
| interface name. Like in
 | |
| 
 | |
|   "http://[fe80::3%25eth0]/"
 | |
| 
 | |
| If you specify URL without protocol:// prefix, curl will attempt to guess what
 | |
| protocol you might want. It will then default to HTTP but try other protocols
 | |
| based on often-used host name prefixes. For example, for host names starting
 | |
| with "ftp." curl will assume you want to speak FTP.
 | |
| 
 | |
| curl will do its best to use what you pass to it as a URL. It is not trying to
 | |
| validate it as a syntactically correct URL by any means but is instead
 | |
| **very** liberal with what it accepts.
 | |
| 
 | |
| curl will attempt to re-use connections for multiple file transfers, so that
 | |
| getting many files from the same server will not do multiple connects /
 | |
| handshakes. This improves speed. Of course this is only done on files
 | |
| specified on a single command line and cannot be used between separate curl
 | |
| invocations.
 | |
| .SH OUTPUT
 | |
| If not told otherwise, curl writes the received data to stdout. It can be
 | |
| instructed to instead save that data into a local file, using the --output or
 | |
| --remote-name options. If curl is given multiple URLs to transfer on the
 | |
| command line, it similarly needs multiple options for where to save them.
 | |
| 
 | |
| curl does not parse or otherwise "understand" the content it gets or writes as
 | |
| output. It does no encoding or decoding, unless explicitly asked to with
 | |
| dedicated command line options.
 | |
| .SH PROTOCOLS
 | |
| curl supports numerous protocols, or put in URL terms: schemes. Your
 | |
| particular build may not support them all.
 | |
| .IP DICT
 | |
| Lets you lookup words using online dictionaries.
 | |
| .IP FILE
 | |
| Read or write local files. curl does not support accessing file:// URL
 | |
| remotely, but when running on Microsoft Windows using the native UNC approach
 | |
| will work.
 | |
| .IP FTP(S)
 | |
| curl supports the File Transfer Protocol with a lot of tweaks and levers. With
 | |
| or without using TLS.
 | |
| .IP GOPHER(S)
 | |
| Retrieve files.
 | |
| .IP HTTP(S)
 | |
| curl supports HTTP with numerous options and variations. It can speak HTTP
 | |
| version 0.9, 1.0, 1.1, 2 and 3 depending on build options and the correct
 | |
| command line options.
 | |
| .IP IMAP(S)
 | |
| Using the mail reading protocol, curl can "download" emails for you. With or
 | |
| without using TLS.
 | |
| .IP LDAP(S)
 | |
| curl can do directory lookups for you, with or without TLS.
 | |
| .IP MQTT
 | |
| curl supports MQTT version 3. Downloading over MQTT equals "subscribe" to a
 | |
| topic while uploading/posting equals "publish" on a topic. MQTT over TLS is
 | |
| not supported (yet).
 | |
| .IP POP3(S)
 | |
| Downloading from a pop3 server means getting a mail. With or without using
 | |
| TLS.
 | |
| .IP RTMP(S)
 | |
| The Realtime Messaging Protocol is primarily used to server streaming media
 | |
| and curl can download it.
 | |
| .IP RTSP
 | |
| curl supports RTSP 1.0 downloads.
 | |
| .IP SCP
 | |
| curl supports SSH version 2 scp transfers.
 | |
| .IP SFTP
 | |
| curl supports SFTP (draft 5) done over SSH version 2.
 | |
| .IP SMB(S)
 | |
| curl supports SMB version 1 for upload and download.
 | |
| .IP SMTP(S)
 | |
| Uploading contents to an SMTP server means sending an email. With or without
 | |
| TLS.
 | |
| .IP TELNET
 | |
| Telling curl to fetch a telnet URL starts an interactive session where it
 | |
| sends what it reads on stdin and outputs what the server sends it.
 | |
| .IP TFTP
 | |
| curl can do TFTP downloads and uploads.
 | |
| .SH "PROGRESS METER"
 | |
| curl normally displays a progress meter during operations, indicating the
 | |
| amount of transferred data, transfer speeds and estimated time left, etc. The
 | |
| progress meter displays number of bytes and the speeds are in bytes per
 | |
| second. The suffixes (k, M, G, T, P) are 1024 based. For example 1k is 1024
 | |
| bytes. 1M is 1048576 bytes.
 | |
| 
 | |
| curl displays this data to the terminal by default, so if you invoke curl to
 | |
| do an operation and it is about to write data to the terminal, it
 | |
| *disables* the progress meter as otherwise it would mess up the output
 | |
| mixing progress meter and response data.
 | |
| 
 | |
| If you want a progress meter for HTTP POST or PUT requests, you need to
 | |
| redirect the response output to a file, using shell redirect (>), --output or
 | |
| similar.
 | |
| 
 | |
| This does not apply to FTP upload as that operation does not spit out any
 | |
| response data to the terminal.
 | |
| 
 | |
| If you prefer a progress "bar" instead of the regular meter, --progress-bar is
 | |
| your friend. You can also disable the progress meter completely with the
 | |
| --silent option.
 | |
| .SH OPTIONS
 | |
| Options start with one or two dashes. Many of the options require an
 | |
| additional value next to them.
 | |
| 
 | |
| The short "single-dash" form of the options, -d for example, may be used with
 | |
| or without a space between it and its value, although a space is a recommended
 | |
| separator. The long "double-dash" form, --data for example, requires a space
 | |
| between it and its value.
 | |
| 
 | |
| Short version options that do not need any additional values can be used
 | |
| immediately next to each other, like for example you can specify all the
 | |
| options -O, -L and -v at once as -OLv.
 | |
| 
 | |
| In general, all boolean options are enabled with --**option** and yet again
 | |
| disabled with --**no-**option. That is, you use the exact same option name
 | |
| but prefix it with "no-". However, in this list we mostly only list and show
 | |
| the --option version of them.
 |