diff options
Diffstat (limited to 'curl.1')
-rw-r--r-- | curl.1 | 598 |
1 files changed, 0 insertions, 598 deletions
diff --git a/curl.1 b/curl.1 deleted file mode 100644 index 7683a117d..000000000 --- a/curl.1 +++ /dev/null @@ -1,598 +0,0 @@ -.\" You can view this file with: -.\" nroff -man curl.1 -.\" Written by Daniel Stenberg -.\" -.TH curl 1 "13 March 2000" "Curl 6.5" "Curl Manual" -.SH NAME -curl \- get a URL with FTP, TELNET, LDAP, GOPHER, DICT, FILE, HTTP or -HTTPS syntax. -.SH SYNOPSIS -.B curl [options] -.I url -.SH DESCRIPTION -.B curl -is a client to get documents/files from servers, using any of the -supported protocols. The command is designed to work without user -interaction or any kind of interactivity. - -curl offers a busload of useful tricks like proxy support, user -authentication, ftp upload, HTTP post, SSL (https:) connections, cookies, file -transfer resume and more. -.SH URL -The URL syntax is protocol dependent. You'll find a detailed description in -RFC 2396. - -You can specify multiple URLs or parts of URLs by writing part sets within -braces as in: - - http://site.{one,two,three}.com - -or you can get sequences of alphanumeric series by using [] as in: - - ftp://ftp.numericals.com/file[1-100].txt - ftp://ftp.numericals.com/file[001-100].txt (with leading zeros) - ftp://ftp.letters.com/file[a-z].txt - -It is possible to specify up to 9 sets or series for a URL, but no nesting is -supported at the moment: - - http://www.any.org/archive[1996-1999]/volume[1-4]part{a,b,c,index}.html -.SH OPTIONS -.IP "-a/--append" -(FTP) -When used in a ftp upload, this will tell curl to append to the target -file instead of overwriting it. If the file doesn't exist, it will -be created. -.IP "-A/--user-agent <agent string>" -(HTTP) -Specify the User-Agent string to send to the HTTP server. Some badly done CGIs -fail if its not set to "Mozilla/4.0". To encode blanks in the string, -surround the string with single quote marks. This can also be set with the --H/--header flag of course. -.IP "-b/--cookie <name=data>" -(HTTP) -Pass the data to the HTTP server as a cookie. It is supposedly the -data previously received from the server in a "Set-Cookie:" line. -The data should be in the format "NAME1=VALUE1; NAME2=VALUE2". - -If no '=' letter is used in the line, it is treated as a filename to use to -read previously stored cookie lines from, which should be used in this session -if they match. Using this method also activates the "cookie parser" which -will make curl record incoming cookies too, which may be handy if you're using -this in combination with the -L/--location option. The file format of the file -to read cookies from should be plain HTTP headers or the netscape cookie file -format. - -.B NOTE -that the file specified with -b/--cookie is only used as input. No cookies -will be stored in the file. To store cookies, save the HTTP headers to a file -using -D/--dump-header! -.IP "-B/--ftp-ascii" -(FTP/LDAP) -Use ASCII transfer when getting an FTP file or LDAP info. For FTP, this can -also be enforced by using an URL that ends with ";type=A". -.IP "-c/--continue" -Continue/Resume a previous file transfer. This instructs curl to -continue appending data on the file where it was previously left, -possibly because of a broken connection to the server. There must be -a named physical file to append to for this to work. -Note: Upload resume is depening on a command named SIZE not always -present in all ftp servers! Upload resume is for FTP only. -HTTP resume is only possible with HTTP/1.1 or later servers. -.IP "-C/--continue-at <offset>" -Continue/Resume a previous file transfer at the given offset. The -given offset is the exact number of bytes that will be skipped -counted from the beginning of the source file before it is transfered -to the destination. -If used with uploads, the ftp server command SIZE will not be used by -curl. Upload resume is for FTP only. -HTTP resume is only possible with HTTP/1.1 or later servers. -.IP "-d/--data <data>" -(HTTP) -Sends the specified data in a POST request to the HTTP server. Note -that the data is sent exactly as specified with no extra processing. -The data is expected to be "url-encoded". This will cause curl to -pass the data to the server using the content-type -application/x-www-form-urlencoded. Compare to -F. - -If you start the data with the letter @, the rest should be a file name to -read the data from, or - if you want curl to read the data from stdin. -The contents of the file must already be url-encoded. -.IP "-D/--dump-header <file>" -(HTTP/FTP) -Write the HTTP headers to this file. Write the FTP file info to this -file if -I/--head is used. - -This option is handy to use when you want to store the cookies that a HTTP -site sends to you. The cookies could then be read in a second curl invoke by -using the -b/--cookie option! -.IP "-e/--referer <URL>" -(HTTP) -Sends the "Referer Page" information to the HTTP server. Some badly -done CGIs fail if it's not set. This can also be set with the -H/--header -flag of course. -.IP "-E/--cert <certificate[:password]>" -(HTTPS) -Tells curl to use the specified certificate file when getting a file -with HTTPS. The certificate must be in PEM format. -If the optional password isn't specified, it will be queried for on -the terminal. Note that this certificate is the private key and the private -certificate concatenated! -.IP "-f/--fail" -(HTTP) -Fail silently (no output at all) on server errors. This is mostly done -like this to better enable scripts etc to better deal with failed -attempts. In normal cases when a HTTP server fails to deliver a -document, it returns a HTML document stating so (which often also -describes why and more). This flag will prevent curl from -outputting that and fail silently instead. -.IP "-F/--form <name=content>" -(HTTP) -This lets curl emulate a filled in form in which a user has pressed -the submit button. This causes curl to POST data using the -content-type multipart/form-data according to RFC1867. This enables -uploading of binary files etc. To force the 'content' part to be -read from a file, prefix the file name with an @ sign. Example, to -send your password file to the server, where 'password' is the -name of the form-field to which /etc/passwd will be the input: - -.B curl --F password=@/etc/passwd www.mypasswords.com - -To read the file's content from stdin insted of a file, use - where the file -name should've been. -.IP "-h/--help" -Usage help. -.IP "-H/--header <header>" -(HTTP) -Extra header to use when getting a web page. You may specify any number of -extra headers. Note that if you should add a custom header that has the same -name as one of the internal ones curl would use, your externally set header -will be used instead of the internal one. This allows you to make even -trickier stuff than curl would normally do. You should not replace internally -set headers without knowing perfectly well what you're doing. -.IP "-i/--include" -(HTTP) -Include the HTTP-header in the output. The HTTP-header includes things -like server-name, date of the document, HTTP-version and more... -.IP "-I/--head" -(HTTP/FTP) -Fetch the HTTP-header only! HTTP-servers feature the command HEAD -which this uses to get nothing but the header of a document. When used -on a FTP file, curl displays the file size only. -.IP "-K/--config <config file>" -Specify which config file to read curl arguments from. The config -file is a text file in which command line arguments can be written -which then will be used as if they were written on the actual command -line. If the first column of a config line is a '#' character, the -rest of the line will be treated as a comment. - -Specify the filename as '-' to make curl read the file from stdin. -.IP "-l/--list-only" -(FTP) -When listing an FTP directory, this switch forces a name-only view. -Especially useful if you want to machine-parse the contents of an FTP -directory since the normal directory view doesn't use a standard look -or format. -.IP "-L/--location" -(HTTP/HTTPS) -If the server reports that the requested page has a different location -(indicated with the header line Location:) this flag will let curl -attempt to reattempt the get on the new place. If used together with --i or -I, headers from all requested pages will be shown. -.IP "-m/--max-time <seconds>" -Maximum time in seconds that you allow the whole operation to take. -This is useful for preventing your batch jobs from hanging for hours -due to slow networks or links going down. -This doesn't work properly in win32 systems. -.IP "-M/--manual" -Manual. Display the huge help text. -.IP "-n/--netrc" -Makes curl scan the -.I .netrc -file in the user's home directory for login name and password. This is -typically used for ftp on unix. If used with http, curl will enable user -authentication. See -.BR netrc(5) -for details on the file format. Curl will not complain if that file -hasn't the right permissions (it should not be world nor group -readable). The environment variable "HOME" is used to find the home -directory. - -A quick and very simple example of how to setup a -.I .netrc -to allow curl to ftp to the machine host.domain.com with user name -'myself' and password 'secret' should look similar to: - -.B "machine host.domain.com login myself password secret" -.IP "-N/--no-buffer" -Disables the buffering of the output stream. In normal work situations, curl -will use a standard buffered output stream that will have the effect that it -will output the data in chunks, not necessarily exactly when the data arrives. -Using this option will disable that buffering. -.IP "-o/--output <file>" -Write output to <file> instead of stdout. If you are using {} or [] to fetch -multiple documents, you can use '#' followed by a number in the <file> -specifier. That variable will be replaced with the current string for the URL -being fetched. Like in: - - curl http://{one,two}.site.com -o "file_#1.txt" - -or use several variables like: - - curl http://{site,host}.host[1-5].com -o "#1_#2" -.IP "-O/--remote-name" -Write output to a local file named like the remote file we get. (Only -the file part of the remote file is used, the path is cut off.) -.IP "-P/--ftpport <address>" -(FTP) -Reverses the initiator/listener roles when connecting with ftp. This -switch makes Curl use the PORT command instead of PASV. In -practice, PORT tells the server to connect to the client's specified -address and port, while PASV asks the server for an ip address and -port to connect to. <address> should be one of: -.RS -.TP 12 -.B interface -i.e "eth0" to specify which interface's IP address you want to use (Unix only) -.TP -.B "IP address" -i.e "192.168.10.1" to specify exact IP number -.TP -.B "host name" -i.e "my.host.domain" to specify machine -.TP -.B "-" -(any single-letter string) to make it pick the machine's default -.RE -.IP "-q" -If used as the first parameter on the command line, the -.I $HOME/.curlrc -file will not be read and used as a config file. -.IP "-Q/--quote <comand>" -(FTP) Send an arbitrary command to the remote FTP server, by using the QUOTE -command of the server. Not all servers support this command, and the set of -QUOTE commands are server specific! Quote commands are sent BEFORE the -transfer is taking place. To make commands take place after a successful -transfer, prefix them with a dash '-'. You may specify any amount of commands -to be run before and after the transfer. If the server returns failure for one -of the commands, the entire operation will be aborted. -.IP "-r/--range <range>" -(HTTP/FTP) -Retrieve a byte range (i.e a partial document) from a HTTP/1.1 or FTP -server. Ranges can be specified in a number of ways. -.RS -.TP 10 -.B 0-499 -specifies the first 500 bytes -.TP -.B 500-999 -specifies the second 500 bytes -.TP -.B -500 -specifies the last 500 bytes -.TP -.B 9500 -specifies the bytes from offset 9500 and forward -.TP -.B 0-0,-1 -specifies the first and last byte only(*)(H) -.TP -.B 500-700,600-799 -specifies 300 bytes from offset 500(H) -.TP -.B 100-199,500-599 -specifies two separate 100 bytes ranges(*)(H) -.RE - -(*) = NOTE that this will cause the server to reply with a multipart -response! - -You should also be aware that many HTTP/1.1 servers do not have this feature -enabled, so that when you attempt to get a range, you'll instead get the whole -document. - -FTP range downloads only support the simple syntax 'start-stop' (optionally -with one of the numbers omitted). It depends on the non-RFC command SIZE. -.IP "-s/--silent" -Silent mode. Don't show progress meter or error messages. Makes -Curl mute. -.IP "-S/--show-error" -When used with -s it makes curl show error message if it fails. -.IP "-t/--upload" -Transfer the stdin data to the specified file. Curl will read -everything from stdin until EOF and store with the supplied name. If -this is used on a http(s) server, the PUT command will be used. -.IP "-T/--upload-file <file>" -Like -t, but this transfers the specified local file. If there is no -file part in the specified URL, Curl will append the local file -name. NOTE that you must use a trailing / on the last directory to -really prove to Curl that there is no file name or curl will -think that your last directory name is the remote file name to -use. That will most likely cause the upload operation to fail. If -this is used on a http(s) server, the PUT command will be used. -.IP "-u/--user <user:password>" -Specify user and password to use when fetching. See README.curl for detailed -examples of how to use this. If no password is specified, curl will -ask for it interactively. -.IP "-U/--proxy-user <user:password>" -Specify user and password to use for Proxy authentication. If no -password is specified, curl will ask for it interactively. -.IP "-v/--verbose" -Makes the fetching more verbose/talkative. Mostly usable for -debugging. Lines starting with '>' means data sent by curl, '<' -means data received by curl that is hidden in normal cases and lines -starting with '*' means additional info provided by curl. -.IP "-V/--version" -Displays the full version of curl, libcurl and other 3rd party libraries -linked with the executable. -.IP "-w/--write-out <format>" -Defines what to display after a completed and successful operation. The format -is a string that may contain plain text mixed with any number of variables. The -string can be specified as "string", to get read from a particular file you -specify it "@filename" and to tell curl to read the format from stdin you -write "@-". - -The variables present in the output format will be substituted by the value or -text that curl thinks fit, as described below. All variables are specified -like %{variable_name} and to output a normal % you just write them like -%%. You can output a newline by using \\n, a carrige return with \\r and a tab -space with \\t. - -.B NOTE: -The %-letter is a special letter in the win32-environment, where all -occurrences of % must be doubled when using this option. - -Available variables are at this point: -.RS -.TP 15 -.B url_effective -The URL that was fetched last. This is mostly meaningful if you've told curl -to follow location: headers. -.TP -.B http_code -The numerical code that was found in the last retrieved HTTP(S) page. -.TP -.B time_total -The total time, in seconds, that the full operation lasted. The time will be -displayed with millisecond resolution. -.TP -.B time_namelookup -The time, in seconds, it took from the start until the name resolving was -completed. -.TP -.B time_connect -The time, in seconds, it took from the start until the connect to the remote -host (or proxy) was completed. -.TP -.B time_pretransfer -The time, in seconds, it took from the start until the file transfer is just -about to begin. This includes all pre-transfer commands and negotiations that -are specific to the particular protocol(s) involved. -.TP -.B size_download -The total amount of bytes that were downloaded. -.TP -.B size_upload -The total amount of bytes that were uploaded. -.TP -.B speed_download -The average download speed that curl measured for the complete download. -.TP -.B speed_upload -The average upload speed that curl measured for the complete download. -.RE -.IP "-x/--proxy <proxyhost[:port]>" -Use specified proxy. If the port number is not specified, it is assumed at -port 1080. -.IP "-X/--request <command>" -(HTTP) -Specifies a custom request to use when communicating with the HTTP server. -The specified request will be used instead of the standard GET. Read the -HTTP 1.1 specification for details and explanations. - -(FTP) -Specifies a custom FTP command to use instead of LIST when doing file lists -with ftp. -.IP "-y/--speed-time <time>" -If a download is slower than speed-limit bytes per second during a speed-time -period, the download gets aborted. If speed-time is used, the default -speed-limit will be 1 unless set with -y. -.IP "-Y/--speed-limit <speed>" -If a download is slower than this given speed, in bytes per second, for -speed-time seconds it gets aborted. speed-time is set with -Y and is 30 if -not set. -.IP "-z/--time-cond <date expression>" -(HTTP) -Request to get a file that has been modified later than the given time and -date, or one that has been modified before that time. The date expression can -be all sorts of date strings or if it doesn't match any internal ones, it -tries to get the time from a given file name instead! See the -.BR "GNU date(1)" -man page for date expression details. - -Start the date expression with a dash (-) to make it request for a document -that is older than the given date/time, default is a document that is newer -than the specified date/time. -.IP "-3/--sslv3" -(HTTPS) -Forces curl to use SSL version 3 when negotiating with a remote SSL server. -.IP "-2/--sslv2" -(HTTPS) -Forces curl to use SSL version 2 when negotiating with a remote SSL server. -.IP "-#/--progress-bar" -Make curl display progress information as a progress bar instead of the -default statistics. -.IP "--crlf" -(FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390). -.IP "--stderr <file>" -Redirect all writes to stderr to the specified file instead. If the file name -is a plain '-', it is instead written to stdout. This option has no point when -you're using a shell with decent redirecting capabilities. -.SH FILES -.I ~/.curlrc -.RS -Default config file. - -.SH ENVIRONMENT -.IP "HTTP_PROXY [protocol://]<host>[:port]" -Sets proxy server to use for HTTP. -.IP "HTTPS_PROXY [protocol://]<host>[:port]" -Sets proxy server to use for HTTPS. -.IP "FTP_PROXY [protocol://]<host>[:port]" -Sets proxy server to use for FTP. -.IP "GOPHER_PROXY [protocol://]<host>[:port]" -Sets proxy server to use for GOPHER. -.IP "ALL_PROXY [protocol://]<host>[:port]" -Sets proxy server to use if no protocol-specific proxy is set. -.IP "NO_PROXY <comma-separated list of hosts>" -list of host names that shouldn't go through any proxy. If set to a -asterisk '*' only, it matches all hosts. -.IP "COLUMNS <integer>" -The width of the terminal. This variable only affects curl when the ---progress-bar option is used. -.SH EXIT CODES -There exists a bunch of different error codes and their corresponding error -messages that may appear during bad conditions. At the time of this writing, -the exit codes are: -.IP 1 -Unsupported protocol. This build of curl has no support for this protocol. -.IP 2 -Failed to initialize. -.IP 3 -URL malformat. The syntax was not correct. -.IP 4 -URL user malformatted. The user-part of the URL syntax was not correct. -.IP 5 -Couldn't resolve proxy. The given proxy host could not be resolved. -.IP 6 -Couldn't resolve host. The given remote host was not resolved. -.IP 7 -Failed to connect to host. -.IP 8 -FTP weird server reply. The server sent data curl couldn't parse. -.IP 9 -FTP access denied. The server denied login. -.IP 10 -FTP user/password incorrect. Either one or both were not accepted by the -server. -.IP 11 -FTP weird PASS reply. Curl couldn't parse the reply sent to the PASS request. -.IP 12 -FTP weird USER reply. Curl couldn't parse the reply sent to the USER request. -.IP 13 -FTP weird PASV reply, Curl couldn't parse the reply sent to the PASV request. -.IP 14 -FTP weird 227 formay. Curl couldn't parse the 227-line the server sent. -.IP 15 -FTP can't get host. Couldn't resolve the host IP we got in the 227-line. -.IP 16 -FTP can't reconnect. Couldn't connect to the host we got in the 227-line. -.IP 17 -FTP couldn't set binary. Couldn't change transfer method to binary. -.IP 18 -Partial file. Only a part of the file was transfered. -.IP 19 -FTP couldn't RETR file. The RETR command failed. -.IP 20 -FTP write error. The transfer was reported bad by the server. -.IP 21 -FTP quote error. A quote command returned error from the server. -.IP 22 -HTTP not found. The requested page was not found. This return code only -appears if --fail is used. -.IP 23 -Write error. Curl couldn't write data to a local filesystem or similar. -.IP 24 -Malformat user. User name badly specified. -.IP 25 -FTP couldn't STOR file. The server denied the STOR operation. -.IP 26 -Read error. Various reading problems. -.IP 27 -Out of memory. A memory allocation request failed. -.IP 28 -Operation timeout. The specified time-out period was reached according to the -conditions. -.IP 29 -FTP couldn't set ASCII. The server returned an unknown reply. -.IP 30 -FTP PORT failed. The PORT command failed. -.IP 31 -FTP couldn't use REST. The REST command failed. -.IP 32 -FTP couldn't use SIZE. The SIZE command failed. The command is an extension -to the original FTP spec RFC 959. -.IP 33 -HTTP range error. The range "command" didn't work. -.IP 34 -HTTP post error. Internal post-request generation error. -.IP 35 -SSL connect error. The SSL handshaking failed. -.IP 36 -FTP bad download resume. Couldn't continue an earlier aborted download. -.IP 37 -FILE couldn't read file. Failed to open the file. Permissions? -.IP 38 -LDAP cannot bind. LDAP bind operation failed. -.IP 39 -LDAP search failed. -.IP 40 -Library not found. The LDAP library was not found. -.IP 41 -Function not found. A required LDAP function was not found. -.IP XX -There will appear more error codes here in future releases. The existing ones -are meant to never change. -.SH BUGS -If you do find any (or have other suggestions), mail Daniel Stenberg -<Daniel.Stenberg@haxx.nu>. -.SH AUTHORS / CONTRIBUTORS - - Daniel Stenberg <Daniel.Stenberg@haxx.nu> - - Rafael Sagula <sagula@inf.ufrgs.br> - - Sampo Kellomaki <sampo@iki.fi> - - Linas Vepstas <linas@linas.org> - - Bjorn Reese <breese@mail1.stofanet.dk> - - Johan Anderson <johan@homemail.com> - - Kjell Ericson <Kjell.Ericson@haxx,nu> - - Troy Engel <tengel@sonic.net> - - Ryan Nelson <ryan@inch.com> - - Bjorn Stenberg <Bjorn.Stenberg@haxx.nu> - - Angus Mackay <amackay@gus.ml.org> - - Eric Young <eay@cryptsoft.com> - - Simon Dick <simond@totally.irrelevant.org> - - Oren Tirosh <oren@monty.hishome.net> - - Steven G. Johnson <stevenj@alum.mit.edu> - - Gilbert Ramirez Jr. <gram@verdict.uthscsa.edu> - - Andrés García <ornalux@redestb.es> - - Douglas E. Wegscheid <wegscd@whirlpool.com> - - Mark Butler <butlerm@xmission.com> - - Eric Thelin <eric@generation-i.com> - - Marc Boucher <marc@mbsi.ca> - - Greg Onufer <Greg.Onufer@Eng.Sun.COM> - - Doug Kaufman <dkaufman@rahul.net> - - David Eriksson <david@2good.com> - - Ralph Beckmann <rabe@uni-paderborn.de> - - T. Yamada <tai@imasy.or.jp> - - Lars J. Aas <larsa@sim.no> - - Jörn Hartroth <Joern.Hartroth@telekom.de> - - Matthew Clarke <clamat@van.maves.ca> - - Linus Nielsen <Linus.Nielsen@haxx.nu> - - Felix von Leitner <felix@convergence.de> - - Dan Zitter <dzitter@zitter.net> - - Jongki Suwandi <Jongki.Suwandi@eng.sun.com> - - Chris Maltby <chris@aurema.com> - - Ron Zapp <rzapper@yahoo.com> - - Paul Marquis <pmarquis@iname.com> - - Ellis Pritchard <ellis@citria.com> - - Damien Adant <dams@usa.net> - - Chris <cbayliss@csc.come> - - Marco G. Salvagno <mgs@whiz.cjb.net> -.SH WWW -http://curl.haxx.nu -.SH FTP -ftp://ftp.sunet.se/pub/www/utilities/curl/ -.SH "SEE ALSO" -.BR ftp (1), -.BR wget (1), -.BR snarf (1) |