version 1.109, 2019/05/09 14:51:34 |
version 1.110, 2019/05/12 20:44:39 |
|
|
.\" $OpenBSD$ |
|
.\" $NetBSD: ftp.1,v 1.22 1997/08/18 10:20:22 lukem Exp $ |
|
.\" |
|
.\" Copyright (c) 1985, 1989, 1990, 1993 |
.\" Copyright (c) 1985, 1989, 1990, 1993 |
.\" The Regents of the University of California. All rights reserved. |
.\" The Regents of the University of California. All rights reserved. |
.\" |
.\" |
|
|
.\" |
.\" |
.\" @(#)ftp.1 8.3 (Berkeley) 10/9/94 |
.\" @(#)ftp.1 8.3 (Berkeley) 10/9/94 |
.\" |
.\" |
|
.\" Copyright (c) 2015 Sunil Nimmagadda <sunil@openbsd.org> |
|
.\" |
|
.\" Permission to use, copy, modify, and distribute this software for any |
|
.\" purpose with or without fee is hereby granted, provided that the above |
|
.\" copyright notice and this permission notice appear in all copies. |
|
.\" |
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
|
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
|
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
|
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
.\" |
.Dd $Mdocdate$ |
.Dd $Mdocdate$ |
.Dt FTP 1 |
.Dt FTP 1 |
.Os |
.Os |
|
|
.Nm ftp |
.Nm ftp |
.Nd Internet file transfer program |
.Nd Internet file transfer program |
.Sh SYNOPSIS |
.Sh SYNOPSIS |
.Nm ftp |
.Nm |
.Op Fl 46AadEegiMmnptVv |
.Op Fl 46AVv |
.Op Fl D Ar title |
.Op Fl D Ar title |
.Op Fl k Ar seconds |
|
.Op Fl P Ar port |
|
.Op Fl r Ar seconds |
|
.Op Fl s Ar srcaddr |
|
.Op Ar host Op Ar port |
.Op Ar host Op Ar port |
.Nm ftp |
.Nm |
.Op Fl C |
.Op Fl 46ACMV |
|
.Op Fl D Ar title |
.Op Fl o Ar output |
.Op Fl o Ar output |
.Op Fl s Ar srcaddr |
.Op Fl S Ar tls_options |
.Sm off |
|
.Pf ftp:// Op Ar user : password No @ |
|
.Ar host Op : Ar port |
|
.No / Ar file Op / |
|
.Sm on |
|
.Ar ... |
|
.Nm ftp |
|
.Op Fl C |
|
.Op Fl c Ar cookie |
|
.Op Fl o Ar output |
|
.Op Fl S Ar ssl_options |
|
.Op Fl s Ar srcaddr |
|
.Op Fl U Ar useragent |
.Op Fl U Ar useragent |
.Op Fl w Ar seconds |
.Op Fl w Ar seconds |
.Sm off |
.Ar url ... |
.Pf http Oo s Oc :// |
|
.Op Ar user : password No @ |
|
.Ar host Op : Ar port |
|
.No / Ar file |
|
.Sm on |
|
.Ar ... |
|
.Nm ftp |
|
.Op Fl C |
|
.Op Fl o Ar output |
|
.Op Fl s Ar srcaddr |
|
.Pf file: Ar |
|
.Nm ftp |
|
.Op Fl C |
|
.Op Fl o Ar output |
|
.Op Fl s Ar srcaddr |
|
.Ar host : Ns / Ns Ar file Ns Op / |
|
.Ar ... |
|
.Sh DESCRIPTION |
.Sh DESCRIPTION |
.Nm |
.Nm |
is the user interface to the Internet standard File Transfer |
is the user interface to the Internet standard File Transfer |
|
|
The program allows a user to transfer files to and from a |
The program allows a user to transfer files to and from a |
remote network site. |
remote network site. |
.Pp |
.Pp |
The latter four usage formats will fetch a file using either the |
The latter usage format will fetch a file using either the |
FTP, HTTP, or HTTPS protocols into the current directory. |
FTP, HTTP or HTTPS protocols into the current directory. |
This is ideal for scripts. |
This is ideal for scripts. |
Refer to |
Refer to |
.Sx AUTO-FETCHING FILES |
.Sx AUTO-FETCHING FILES |
|
|
.It Fl 6 |
.It Fl 6 |
Forces |
Forces |
.Nm |
.Nm |
to use IPv6 addresses only. |
to use IPv6 addreses only. |
.It Fl A |
.It Fl A |
Force active mode FTP. |
Force active mode FTP. |
By default, |
By default, |
|
|
to always use an active connection. |
to always use an active connection. |
It is only useful for connecting |
It is only useful for connecting |
to very old servers that do not implement passive mode properly. |
to very old servers that do not implement passive mode properly. |
.It Fl a |
|
Causes |
|
.Nm |
|
to bypass the normal login procedure and use an anonymous login instead. |
|
.It Fl C |
.It Fl C |
Continue a previously interrupted file transfer. |
Continue a previously interrupted file transfer. |
.Nm |
.Nm |
will continue transferring from an offset equal to the length of |
will continue transferring from an offset equal to the length of file. |
.Ar file . |
|
.Pp |
.Pp |
Resuming HTTP(S) transfers are only supported |
Resuming HTTP(S) transfers are only supported if the remote server supports the |
if the remote server supports the |
|
.Dq Range |
.Dq Range |
header. |
header. |
.It Fl c Ar cookie |
|
Load a Netscape-like cookiejar file |
|
for HTTP and HTTPS transfers. |
|
With this option relevant cookies from the jar are sent with each HTTP(S) |
|
request. |
|
Setting the |
|
.Ev http_cookies |
|
environment variable has the same effect. |
|
If both the |
|
.Ev http_cookies |
|
environment variable is set and the |
|
.Fl c |
|
argument is given, the latter takes precedence. |
|
.It Fl D Ar title |
.It Fl D Ar title |
Specify a short |
Specify a short title for the start of the progress bar. |
.Ar title |
|
for the start of the progress bar. |
|
.It Fl d |
|
Enables debugging. |
|
.It Fl E |
|
Disables EPSV/EPRT command on IPv4 connections. |
|
.It Fl e |
|
Disables command line editing. |
|
Useful for Emacs ange-ftp. |
|
.It Fl g |
|
Disables file name globbing. |
|
.It Fl i |
|
Turns off interactive prompting during |
|
multiple file transfers. |
|
.It Fl k Ar seconds |
|
When greater than zero, |
|
sends a byte after each |
|
.Ar seconds |
|
period over the control connection during long transfers, |
|
so that incorrectly configured network equipment won't |
|
aggressively drop it. |
|
The FTP protocol supports a |
|
.Dv NOOP |
|
command that can be used for that purpose. |
|
This assumes the FTP server can deal with extra commands coming over |
|
the control connection during a transfer. |
|
Well-behaved servers queue those commands, and process them after the |
|
transfer. |
|
By default, |
|
.Nm |
|
will send a byte every 60 seconds. |
|
.It Fl M |
.It Fl M |
Causes |
Causes |
.Nm |
.Nm |
to never display the progress meter in cases where it would do |
to never display the progress meter in cases where it would do so by default. |
so by default. |
|
.It Fl m |
|
Causes |
|
.Nm |
|
to always display the progress meter in cases where it would not do |
|
so by default. |
|
.It Fl n |
|
Restrains |
|
.Nm |
|
from attempting |
|
.Dq auto-login |
|
upon initial connection. |
|
If auto-login is enabled, |
|
.Nm |
|
will check the |
|
.Pa .netrc |
|
file (see below) in the user's home directory for an entry describing |
|
an account on the remote machine. |
|
If no entry exists, |
|
.Nm |
|
will prompt for the remote machine login name (default is the user |
|
identity on the local machine) and, if necessary, prompt for a password |
|
and an account with which to log in. |
|
.It Fl o Ar output |
.It Fl o Ar output |
When fetching a single file or URL, save the contents in |
When fetching a file or URL, save the contents in |
.Ar output . |
.Ar output . |
To make the contents go to stdout, |
To make the contents go to stdout, use `-' for |
use |
|
.Sq - |
|
for |
|
.Ar output . |
.Ar output . |
.It Fl P Ar port |
.It Fl S Ar tls_options |
Sets the port number to |
TLS options to use with HTTPS transfers. |
.Ar port . |
|
.It Fl p |
|
Enable passive mode operation for use behind connection filtering firewalls. |
|
This option has been deprecated as |
|
.Nm |
|
now tries to use passive mode by default, falling back to active mode |
|
if the server does not support passive connections. |
|
.It Fl r Ar seconds |
|
Retry to connect if failed, pausing for number of |
|
.Ar seconds . |
|
.It Fl S Ar ssl_options |
|
SSL/TLS options to use with HTTPS transfers. |
|
The following settings are available: |
The following settings are available: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Cm cafile Ns = Ns Ar /path/to/cert.pem |
.It Cm cafile Ns = Ns Ar /path/to/cert.pem |
PEM encoded file containing CA certificates used for certificate |
PEM encoded file containing CA certificates used for certificate validation. |
validation. |
|
.It Cm capath Ns = Ns Ar /path/to/certs/ |
.It Cm capath Ns = Ns Ar /path/to/certs/ |
Directory containing PEM encoded CA certificates used for certificate |
Directory containing PEM encoded CA certificates used for certificate |
validation. |
validation. |
Such a directory can be prepared using the c_rehash script distributed with |
|
OpenSSL. |
|
.It Cm ciphers Ns = Ns Ar cipher_list |
.It Cm ciphers Ns = Ns Ar cipher_list |
Specify the list of ciphers that will be used by |
Specify the list of ciphers that will be used by |
.Nm . |
.Nm . |
|
|
.Cm ciphers |
.Cm ciphers |
subcommand. |
subcommand. |
.It Cm depth Ns = Ns Ar max_depth |
.It Cm depth Ns = Ns Ar max_depth |
Maximum depth of the certificate chain allowed when performing |
Maximum depth of the certificate chain allowed when performing validation. |
validation. |
|
.It Cm do |
|
Perform server certificate validation. |
|
.It Cm dont |
.It Cm dont |
Don't perform server certificate validation. |
Don't perform server certificate validation. |
|
.It Cm protocols Ns = Ns Ar string |
|
Specify the TLS protocols to use. |
|
If not specified the value |
|
.Qq all |
|
is used. |
|
Refer to the |
|
.Xr tls_config_parse_protocols 3 |
|
function for other valid protocol string values. |
.It Cm muststaple |
.It Cm muststaple |
Require the server to present a valid OCSP stapling in the TLS handshake. |
Require the server to present a valid OCSP stapling in the TLS handshake. |
.It Cm noverifytime |
.It Cm noverifytime |
|
|
Specify a file to use for TLS session data. |
Specify a file to use for TLS session data. |
If this file has a non-zero length, the session data will be read from this file |
If this file has a non-zero length, the session data will be read from this file |
and the client will attempt to resume the TLS session with the server. |
and the client will attempt to resume the TLS session with the server. |
Upon completion of a successful TLS handshake this file will be updated |
Upon completion of a successful TLS handshake this file will be updated with |
with new session data, if available. |
new session data, if available. |
This file will be created if it does not already exist. |
This file will be created if it does not already exist. |
.El |
.El |
.Pp |
.Pp |
|
|
setting is provided, |
setting is provided, |
.Pa /etc/ssl/cert.pem |
.Pa /etc/ssl/cert.pem |
will be used. |
will be used. |
.It Fl s Ar srcaddr |
|
Use |
|
.Ar srcaddr |
|
on the local machine as the source address |
|
of the connection. |
|
Only useful on systems with more than one address. |
|
.It Fl t |
|
Enables packet tracing. |
|
.It Fl U Ar useragent |
.It Fl U Ar useragent |
Set |
Set |
.Ar useragent |
.Ar useragent |
|
|
If not specified, the default User-Agent is |
If not specified, the default User-Agent is |
.Dq OpenBSD ftp . |
.Dq OpenBSD ftp . |
.It Fl V |
.It Fl V |
Disable verbose mode, overriding the default of enabled when input |
Disable verbose mode. |
is from a terminal. |
|
.It Fl v |
|
Enable verbose mode. |
|
This is the default if input is from a terminal. |
|
Forces |
|
.Nm |
|
to show all responses from the remote server, as well |
|
as report on data transfer statistics. |
|
.It Fl w Ar seconds |
.It Fl w Ar seconds |
For URL format connections to HTTP/HTTPS servers, abort a |
Abort a slow connection after |
slow connection after |
|
.Ar seconds . |
.Ar seconds . |
.El |
.El |
.Pp |
.Pp |
|
|
by |
by |
.Nm : |
.Nm : |
.Bl -tag -width Fl |
.Bl -tag -width Fl |
.It Ic \&! Oo Ar command |
.It Ic open Ar host Op Ar port |
.Op Ar arg ... |
Establish a connection to the specified |
.Oc |
.Ar host |
Invoke an interactive shell on the local machine. |
FTP server. |
If there are arguments, the first is taken to be a command to execute |
An optional port number may be supplied, |
directly, with the rest of the arguments as its arguments. |
in which case |
.It Ic \&$ Ar macro-name Op Ar arg ... |
.Nm |
Execute the macro |
will attempt to contact an FTP server at that port. |
.Ar macro-name |
|
that was defined with the |
|
.Ic macdef |
|
command. |
|
Arguments are passed to the macro unglobbed. |
|
.It Ic \&? Op Ar command |
|
A synonym for |
|
.Ic help . |
|
.It Ic account Op Ar password |
|
Supply a supplemental password required by a remote system for access |
|
to resources once a login has been successfully completed. |
|
If no argument is included, the user will be prompted for an account |
|
password in a non-echoing input mode. |
|
.It Ic append Ar local-file Op Ar remote-file |
|
Append a local file to a file on the remote machine. |
|
If |
|
.Ar remote-file |
|
is left unspecified, the local file name is used in naming the |
|
remote file after being altered by any |
|
.Ic ntrans |
|
or |
|
.Ic nmap |
|
setting. |
|
File transfer uses the current settings for |
|
.Ic type , |
|
.Ic format , |
|
.Ic mode , |
|
and |
|
.Ic structure . |
|
.It Ic ascii |
|
Set the file transfer |
|
.Ic type |
|
to network |
|
.Tn ASCII . |
|
.It Ic bell Op Ic on | off |
|
Arrange that a bell be sounded after each file transfer |
|
command is completed. |
|
.It Ic binary |
|
Set the file transfer |
|
.Ic type |
|
to support binary image transfer. |
|
This is the default type. |
|
.It Ic bye |
|
Terminate the FTP session with the remote server and exit |
|
.Nm . |
|
An end-of-file will also terminate the session and exit. |
|
.It Ic case Op Ic on | off |
|
Toggle remote computer file name case mapping during |
|
.Ic mget |
|
commands. |
|
When |
|
.Ic case |
|
is on (default is off), remote computer file names with all letters in |
|
upper case are written in the local directory with the letters mapped |
|
to lower case. |
|
.It Ic cd Ar remote-directory |
|
Change the working directory on the remote machine |
|
to |
|
.Ar remote-directory . |
|
.It Ic cdup |
|
Change the remote machine working directory to the parent of the |
|
current remote machine working directory. |
|
.It Ic chmod Ar mode file |
|
Change the permission modes of |
|
.Ar file |
|
on the remote |
|
system to |
|
.Ar mode . |
|
.It Ic close |
.It Ic close |
Terminate the FTP session with the remote server and |
Terminate the FTP session with the remote server and |
return to the command interpreter. |
return to the command interpreter. |
Any defined macros are erased. |
|
.It Ic cr Op Ic on | off |
|
Toggle carriage return stripping during |
|
ASCII type file retrieval. |
|
Records are denoted by a carriage return/linefeed sequence |
|
during ASCII type file transfer. |
|
When |
|
.Ic cr |
|
is on (the default), carriage returns are stripped from this |
|
sequence to conform with the |
|
.Ux |
|
single linefeed record delimiter. |
|
Records on non-UNIX |
|
remote systems may contain single linefeeds; |
|
when an ASCII type transfer is made, these linefeeds may be |
|
distinguished from a record delimiter only when |
|
.Ic cr |
|
is off. |
|
.It Ic debug Oo Ic on | off | |
|
.Ar debuglevel |
|
.Oc |
|
Toggle debugging mode. |
|
If an optional |
|
.Ar debuglevel |
|
is specified, it is used to set the debugging level. |
|
When debugging is on, |
|
.Nm |
|
prints each command sent to the remote machine, |
|
preceded by the string |
|
.Ql --\*(Gt . |
|
.It Ic delete Ar remote-file |
|
Delete the file |
|
.Ar remote-file |
|
on the remote machine. |
|
.It Ic dir Op Ar remote-directory Op Ar local-file |
|
A synonym for |
|
.Ic ls . |
|
.It Ic disconnect |
|
A synonym for |
|
.Ic close . |
|
.It Ic edit Op Ic on | off |
|
Toggle command line editing, and context sensitive command and file |
|
completion. |
|
This is automatically enabled if input is from a terminal, and |
|
disabled otherwise. |
|
.It Ic epsv4 Op Ic on | off |
|
Toggle use of EPSV/EPRT command on IPv4 connection. |
|
.It Ic exit |
|
A synonym for |
|
.Ic bye . |
|
.It Ic form Ar format |
|
Set the file transfer |
|
.Ic form |
|
to |
|
.Ar format . |
|
The default format is |
|
.Dq file . |
|
.It Ic ftp Ar host Op Ar port |
|
A synonym for |
|
.Ic open . |
|
.It Ic gate Oo Ic on | off | |
|
.Ar host Op Ar port |
|
.Oc |
|
Toggle gate-ftp mode. |
|
This will not be permitted if the gate-ftp server hasn't been set |
|
(either explicitly by the user, or from the |
|
.Ev FTPSERVER |
|
environment variable). |
|
If |
|
.Ar host |
|
is given, |
|
then gate-ftp mode will be enabled, and the gate-ftp server will be set to |
|
.Ar host . |
|
If |
|
.Ar port |
|
is also given, that will be used as the port to connect to on the |
|
gate-ftp server. |
|
.It Ic get Ar remote-file Op Ar local-file |
|
Retrieve the |
|
.Ar remote-file |
|
and store it on the local machine. |
|
If the local |
|
file name is not specified, it is given the same |
|
name it has on the remote machine, subject to |
|
alteration by the current |
|
.Ic case , |
|
.Ic ntrans , |
|
and |
|
.Ic nmap |
|
settings. |
|
The current settings for |
|
.Ic type , |
|
.Ic form , |
|
.Ic mode , |
|
and |
|
.Ic structure |
|
are used while transferring the file. |
|
.It Ic glob Op Ic on | off |
|
Toggle filename expansion for |
|
.Ic mdelete , |
|
.Ic mget |
|
and |
|
.Ic mput . |
|
If globbing is turned off with |
|
.Ic glob , |
|
the file name arguments |
|
are taken literally and not expanded. |
|
Globbing for |
|
.Ic mput |
|
is done as in |
|
.Xr csh 1 . |
|
For |
|
.Ic mdelete |
|
and |
|
.Ic mget , |
|
each remote file name is expanded |
|
separately on the remote machine and the lists are not merged. |
|
Expansion of a directory name is likely to be |
|
different from expansion of the name of an ordinary file: |
|
the exact result depends on the foreign operating system and FTP server, |
|
and can be previewed by doing |
|
.Dq mls remote-files - . |
|
Note: |
|
.Ic mget |
|
and |
|
.Ic mput |
|
are not meant to transfer |
|
entire directory subtrees of files. |
|
That can be done by |
|
transferring a |
|
.Xr tar 1 |
|
archive of the subtree (in binary mode). |
|
.It Ic hash Oo Ic on | off | |
|
.Ar size |
|
.Oc |
|
Toggle hash mark |
|
.Pq Ql # |
|
printing for each data block transferred. |
|
The size of a data block defaults to 1024 bytes. |
|
This can be changed by specifying |
|
.Ar size |
|
in bytes. |
|
.It Ic help Op Ar command |
.It Ic help Op Ar command |
Print an informative message about the meaning of |
Print an informative message about the meaning of |
.Ar command . |
.Ar command . |
If no argument is given, |
If no argument is given, |
.Nm |
.Nm |
prints a list of the known commands. |
prints a list of the known commands. |
.It Ic idle Op Ar seconds |
.It Ic \&? Op Ar command |
Set the inactivity timer on the remote server to |
|
.Ar seconds |
|
seconds. |
|
If |
|
.Ar seconds |
|
is omitted, the current inactivity timer is printed. |
|
.It Ic lcd Op Ar local-directory |
|
Change the working directory on the local machine. |
|
If |
|
no |
|
.Ar local-directory |
|
is specified, the user's home directory is used. |
|
.It Ic less Ar file |
|
A synonym for |
A synonym for |
.Ic page . |
.Ic help . |
.It Ic lpwd |
.It Ic quit |
Print the working directory on the local machine. |
Terminate the FTP session with the remote server and exit |
|
.Nm . |
|
.It Ic exit |
|
A synonym for |
|
.Ic quit . |
.It Ic ls Op Ar remote-directory Op Ar local-file |
.It Ic ls Op Ar remote-directory Op Ar local-file |
Print a listing of the contents of a directory on the remote machine. |
Print a listing of the contents of a directory on the remote machine. |
The listing includes any system-dependent information that the server |
The listing includes any system-dependent information that the server |
|
|
If |
If |
.Ar remote-directory |
.Ar remote-directory |
is left unspecified, the current working directory is used. |
is left unspecified, the current working directory is used. |
If interactive prompting is on, |
|
.Nm |
|
will prompt the user to verify that the last argument is indeed the |
|
target local file for receiving |
|
.Ic ls |
|
output. |
|
If no local file is specified, or if |
If no local file is specified, or if |
.Ar local-file |
.Ar local-file |
is |
is |
.Sq - , |
.Sq - , |
the output is sent to the terminal. |
the output is sent to the terminal. |
.It Ic macdef Ar macro-name |
|
Define a macro. |
|
Subsequent lines are stored as the macro |
|
.Ar macro-name ; |
|
a null line (consecutive newline characters |
|
in a file or |
|
carriage returns from the terminal) terminates macro input mode. |
|
There is a limit of 16 macros and 4096 total characters in all |
|
defined macros. |
|
Macro names can be a maximum of 8 characters. |
|
Macros are only applicable to the current session they are |
|
defined in (or if defined outside a session, to the session |
|
invoked with the next |
|
.Ic open |
|
command), and remain defined until a |
|
.Ic close |
|
command is executed. |
|
To invoke a macro, |
|
use the |
|
.Ic $ |
|
command (see above). |
|
.Pp |
|
The macro processor interprets |
|
.Ql $ |
|
and |
|
.Ql \e |
|
as special characters. |
|
A |
|
.Ql $ |
|
followed by a number (or numbers) is replaced by the |
|
corresponding argument on the macro invocation command line. |
|
A |
|
.Ql $ |
|
followed by an |
|
.Sq i |
|
tells the macro processor that the |
|
executing macro is to be looped. |
|
On the first pass |
|
.Ql $i |
|
is |
|
replaced by the first argument on the macro invocation command line, |
|
on the second pass it is replaced by the second argument, and so on. |
|
A |
|
.Ql \e |
|
followed by any character is replaced by that character. |
|
Use the |
|
.Ql \e |
|
to prevent special treatment of the |
|
.Ql $ . |
|
.It Ic mdelete Op Ar remote-files |
|
Delete the |
|
.Ar remote-files |
|
on the remote machine. |
|
.It Ic mdir Ar remote-files local-file |
|
A synonym for |
|
.Ic mls . |
|
.It Xo Ic mget |
|
.Op Fl cnr |
|
.Op Fl d Ar depth |
|
.Ar remote-files |
|
.Xc |
|
Expand the |
|
.Ar remote-files |
|
on the remote machine |
|
and do a |
|
.Ic get |
|
for each file name thus produced. |
|
See |
|
.Ic glob |
|
for details on the filename expansion. |
|
Resulting file names will then be processed according to |
|
.Ic case , |
|
.Ic ntrans , |
|
and |
|
.Ic nmap |
|
settings. |
|
Files are transferred into the local working directory, |
|
which can be changed with |
|
.Ql lcd directory ; |
|
new local directories can be created with |
|
.Ql "\&! mkdir directory" . |
|
.Pp |
|
The options are as follows: |
|
.Bl -tag -width Ds |
|
.It Fl c |
|
Use |
|
.Ic reget |
|
instead of |
|
.Ic get . |
|
.It Fl d Ar depth |
|
Specify the maximum recursion level |
|
.Ar depth . |
|
The default is 0, which means unlimited. |
|
.It Fl n |
|
Use |
|
.Ic newer |
|
instead of |
|
.Ic get . |
|
.It Fl r |
|
Recursively descend the directory tree, transferring all files and |
|
directories. |
|
.El |
|
.It Ic mkdir Ar directory-name |
|
Make a directory on the remote machine. |
|
.It Ic mls Ar remote-files local-file |
|
Like |
|
.Ic ls , |
|
except multiple remote files may be specified, |
|
and the |
|
.Ar local-file |
|
must be specified. |
|
If interactive prompting is on, |
|
.Nm |
|
will prompt the user to verify that the last argument is indeed the |
|
target local file for receiving |
|
.Ic mls |
|
output. |
|
.It Ic mode Op Ar mode-name |
|
Set the file transfer |
|
.Ic mode |
|
to |
|
.Ar mode-name . |
|
The default mode is |
|
.Dq stream |
|
mode. |
|
.It Ic modtime Ar file |
|
Show the last modification time of |
|
.Ar file |
|
on the remote machine. |
|
.It Ic more Ar file |
|
A synonym for |
|
.Ic page . |
|
.It Xo Ic mput |
|
.Op Fl cr |
|
.Op Fl d Ar depth |
|
.Ar local-files |
|
.Xc |
|
Expand wild cards in the list of local files given as arguments |
|
and do a |
|
.Ic put |
|
for each file in the resulting list. |
|
See |
|
.Ic glob |
|
for details of filename expansion. |
|
Resulting file names will then be processed according to |
|
.Ic ntrans |
|
and |
|
.Ic nmap |
|
settings. |
|
.Pp |
|
If the |
|
.Fl c |
|
flag is specified then |
|
The options are as follows: |
|
.Bl -tag -width Ds |
|
.It Fl c |
|
Use |
|
.Ic reput |
|
instead of |
|
.Ic put . |
|
.It Fl d Ar depth |
|
Specify the maximum recursion level |
|
.Ar depth . |
|
The default is 0, which means unlimited. |
|
.It Fl r |
|
Recursively descend the directory tree, transferring all files and |
|
directories. |
|
.El |
|
.It Xo Ic msend |
|
.Op Fl c |
|
.Ar local-files |
|
.Xc |
|
A synonym for |
|
.Ic mput . |
|
.It Ic newer Ar remote-file Op Ar local-file |
|
Get the file only if the modification time of the remote file is more |
|
recent than the file on the current system. |
|
If the file does not |
|
exist on the current system, the remote file is considered |
|
.Ic newer . |
|
Otherwise, this command is identical to |
|
.Ar get . |
|
.It Ic nlist Op Ar remote-directory Op Ar local-file |
.It Ic nlist Op Ar remote-directory Op Ar local-file |
Print a list of the files in a |
Print a list of the files in a |
directory on the remote machine. |
directory on the remote machine. |
If |
If |
.Ar remote-directory |
.Ar remote-directory |
is left unspecified, the current working directory is used. |
is left unspecified, the current working directory is used. |
If interactive prompting is on, |
|
.Nm |
|
will prompt the user to verify that the last argument is indeed the |
|
target local file for receiving |
|
.Ic nlist |
|
output. |
|
If no local file is specified, or if |
If no local file is specified, or if |
.Ar local-file |
.Ar local-file |
is |
is |
|
|
.Ic nlist |
.Ic nlist |
command will only return information on normal files (not directories |
command will only return information on normal files (not directories |
or special files). |
or special files). |
.It Ic nmap Op Ar inpattern outpattern |
.It Ic pwd |
Set or unset the filename mapping mechanism. |
Print the name of the current working directory on the remote |
If no arguments are specified, the filename mapping mechanism is unset. |
machine. |
If arguments are specified, remote filenames are mapped during |
.It Ic cd Ar remote-directory |
.Ic mput |
Change the working directory on the remote machine |
commands and |
to |
.Ic put |
.Ar remote-directory . |
commands issued without a specified remote target filename. |
.It Ic get Ar remote-file Op Ar local-file |
If arguments are specified, local filenames are mapped during |
Retrieve the |
.Ic mget |
.Ar remote-file |
commands and |
and store it on the local machine. |
.Ic get |
If the local |
commands issued without a specified local target filename. |
file name is not specified, it is given the same |
This command is useful when connecting to a non-UNIX remote computer |
name it has on the remote machine. |
with different file naming conventions or practices. |
|
.Pp |
|
The mapping follows the pattern set by |
|
.Ar inpattern |
|
and |
|
.Ar outpattern . |
|
.Ar inpattern |
|
is a template for incoming filenames (which may have already been |
|
processed according to the |
|
.Ic ntrans |
|
and |
|
.Ic case |
|
settings). |
|
Variable templating is accomplished by including the |
|
sequences |
|
.Ql $1 , |
|
.Ql $2 , |
|
\&..., |
|
.Ql $9 |
|
in |
|
.Ar inpattern . |
|
Use |
|
.Ql \e |
|
to prevent this special treatment of the |
|
.Ql $ |
|
character. |
|
All other characters are treated literally, and are used to determine the |
|
.Ic nmap |
|
.Ar inpattern |
|
variable values. |
|
.Pp |
|
For example, given |
|
.Ar inpattern |
|
$1.$2 and the remote file name "mydata.data", $1 would have the value |
|
"mydata", and $2 would have the value "data". |
|
The |
|
.Ar outpattern |
|
determines the resulting mapped filename. |
|
The sequences |
|
.Ql $1 , |
|
.Ql $2 , |
|
\&..., |
|
.Ql $9 |
|
are replaced by any value resulting from the |
|
.Ar inpattern |
|
template. |
|
The sequence |
|
.Ql $0 |
|
is replaced by the original filename. |
|
Additionally, the sequence |
|
.Sq Op Ar seq1 , Ar seq2 |
|
is replaced by |
|
.Ar seq1 |
|
if |
|
.Ar seq1 |
|
is not a null string; otherwise it is replaced by |
|
.Ar seq2 . |
|
For example: |
|
.Pp |
|
.Dl nmap $1.$2.$3 [$1,$2].[$2,file] |
|
.Pp |
|
This command would yield the output filename |
|
.Pa myfile.data |
|
for input filenames |
|
.Pa myfile.data |
|
and |
|
.Pa myfile.data.old ; |
|
.Pa myfile.file |
|
for the input filename |
|
.Pa myfile ; |
|
and |
|
.Pa myfile.myfile |
|
for the input filename |
|
.Pa .myfile . |
|
Spaces may be included in |
|
.Ar outpattern |
|
by quoting them, |
|
as in the following example: |
|
.Bd -literal -offset indent |
|
nmap $1.$2 "$1 $2" |
|
.Ed |
|
.Pp |
|
Use the |
|
.Ql \e |
|
character to prevent special treatment |
|
of the |
|
.Ql $ , |
|
.Ql \&[ , |
|
.Ql \&] , |
|
and |
|
.Ql \&, |
|
characters. |
|
.It Ic ntrans Op Ar inchars Op Ar outchars |
|
Set or unset the filename character translation mechanism. |
|
If no arguments are specified, the filename character |
|
translation mechanism is unset. |
|
If arguments are specified, characters in |
|
remote filenames are translated during |
|
.Ic mput |
|
commands and |
|
.Ic put |
|
commands issued without a specified remote target filename. |
|
If arguments are specified, characters in |
|
local filenames are translated during |
|
.Ic mget |
|
commands and |
|
.Ic get |
|
commands issued without a specified local target filename. |
|
This command is useful when connecting to a non-UNIX remote computer |
|
with different file naming conventions or practices. |
|
Characters in a filename matching a character in |
|
.Ar inchars |
|
are replaced with the corresponding character in |
|
.Ar outchars . |
|
If the character's position in |
|
.Ar inchars |
|
is longer than the length of |
|
.Ar outchars , |
|
the character is deleted from the file name. |
|
.It Ic open Ar host Op Ar port |
|
Establish a connection to the specified |
|
.Ar host |
|
FTP server. |
|
An optional port number may be supplied, |
|
in which case |
|
.Nm |
|
will attempt to contact an FTP server at that port. |
|
If the |
|
.Ic auto-login |
|
option is on (default), |
|
.Nm |
|
will also attempt to automatically log the user in to |
|
the FTP server (see below). |
|
.It Ic page Ar file |
|
Retrieve |
|
.Ic file |
|
and display with the program defined in |
|
.Ev PAGER |
|
(defaulting to |
|
.Xr more 1 |
|
if |
|
.Ev PAGER |
|
is null or not defined). |
|
.It Ic passive Op Ic on | off |
.It Ic passive Op Ic on | off |
Toggle passive mode. |
Toggle passive mode. |
If passive mode is turned on (default is on), |
If passive mode is turned on (default is on), |
|
|
will send a |
will send a |
.Dv EPSV |
.Dv EPSV |
command for all data connections instead of the usual |
command for all data connections instead of the usual |
.Dv PORT |
.Dv EPRT |
command. |
command. |
The |
The |
.Dv PASV |
.Dv EPSV |
command requests that the remote server open a port for the data connection |
command requests that the remote server open a port for the data connection |
and return the address of that port. |
and return the address of that port. |
The remote server listens on that port and the client connects to it. |
The remote server listens on that port and the client connects to it. |
When using the more traditional |
When using the more traditional |
.Dv PORT |
.Dv EPRT |
command, the client listens on a port and sends that address to the remote |
command, the client listens on a port and sends that address to the remote |
server, who connects back to it. |
server, who connects back to it. |
Passive mode is useful when using |
Passive mode is useful when using |
.Nm |
.Nm |
through a gateway router or host that controls the directionality of |
through a gateway router or host that controls the directionality of |
traffic. |
traffic. |
(Note that though FTP servers are required to support the |
.It Ic lcd Op Ar local-directory |
.Dv PASV |
Change the working directory on the local machine. |
command by RFC 1123, some do not.) |
If |
.It Ic preserve Op Ic on | off |
no |
Toggle preservation of modification times on retrieved files. |
.Ar local-directory |
.It Ic progress Op Ic on | off |
is specified, the user's home directory is used. |
Toggle display of transfer progress bar. |
.It Ic lpwd |
The progress bar will be disabled for a transfer that has |
Print the working directory on the local machine. |
.Ar local-file |
|
as |
|
.Sq - |
|
or a command that starts with |
|
.Sq \&| . |
|
Refer to |
|
.Sx FILE NAMING CONVENTIONS |
|
for more information. |
|
.It Ic prompt Op Ic on | off |
|
Toggle interactive prompting. |
|
Interactive prompting |
|
occurs during multiple file transfers to allow the |
|
user to selectively retrieve or store files. |
|
If prompting is turned off (default is on), any |
|
.Ic mget |
|
or |
|
.Ic mput |
|
will transfer all files, and any |
|
.Ic mdelete |
|
will delete all files. |
|
.Pp |
|
When prompting is on, the following commands are available at a prompt: |
|
.Bl -tag -width 2n -offset indent |
|
.It Ic ?\& |
|
Print help message. |
|
.It Ic a |
|
Answer |
|
.Dq yes |
|
to the current file and automatically answer |
|
.Dq yes |
|
to any remaining files for the current command. |
|
.It Ic n |
|
Do not transfer the file. |
|
.It Ic p |
|
Answer |
|
.Dq yes |
|
to the current file and turn off prompt mode |
|
(as if |
|
.Dq prompt off |
|
had been given). |
|
.It Ic q |
|
Answer |
|
.Dq no |
|
to the current file and automatically answer |
|
.Dq no |
|
to any remaining files for the current command. |
|
.It Ic y |
|
Transfer the file. |
|
.El |
|
.It Ic proxy Ar command |
|
Execute an FTP command on a secondary control connection. |
|
This command allows simultaneous connection to two remote FTP |
|
servers for transferring files between the two servers. |
|
The first |
|
.Ic proxy |
|
command should be an |
|
.Ic open , |
|
to establish the secondary control connection. |
|
Enter the command |
|
.Ic proxy ?\& |
|
to see other FTP commands executable on the |
|
secondary connection. |
|
The following commands behave differently when prefaced by |
|
.Ic proxy : |
|
.Ic open |
|
will not define new macros during the auto-login process; |
|
.Ic close |
|
will not erase existing macro definitions; |
|
.Ic get |
|
and |
|
.Ic mget |
|
transfer files from the host on the primary control connection |
|
to the host on the secondary control connection; and |
|
.Ic put , |
|
.Ic mput , |
|
and |
|
.Ic append |
|
transfer files from the host on the secondary control connection |
|
to the host on the primary control connection. |
|
Third party file transfers depend upon support of the FTP protocol |
|
.Dv PASV |
|
command by the server on the secondary control connection. |
|
.It Ic put Ar local-file Op Ar remote-file |
.It Ic put Ar local-file Op Ar remote-file |
Store a local file on the remote machine. |
Store a local file on the remote machine. |
If |
If |
.Ar remote-file |
.Ar remote-file |
is left unspecified, the local file name is used |
is left unspecified, the local file name is used. |
after processing according to any |
.It Ic mget Ar remote-files |
.Ic ntrans |
Do a |
or |
|
.Ic nmap |
|
settings |
|
in naming the remote file. |
|
File transfer uses the |
|
current settings for |
|
.Ic type , |
|
.Ic format , |
|
.Ic mode , |
|
and |
|
.Ic structure . |
|
.It Ic pwd |
|
Print the name of the current working directory on the remote |
|
machine. |
|
.It Ic quit |
|
A synonym for |
|
.Ic bye . |
|
.It Ic quote Ar arg ... |
|
The arguments specified are sent, verbatim, to the remote FTP server. |
|
.It Ic recv Ar remote-file Op Ar local-file |
|
A synonym for |
|
.Ic get . |
|
.It Ic reget Ar remote-file Op Ar local-file |
|
Reget acts like get, except that if |
|
.Ar local-file |
|
exists and is |
|
smaller than |
|
.Ar remote-file , |
|
.Ar local-file |
|
is presumed to be |
|
a partially transferred copy of |
|
.Ar remote-file |
|
and the transfer |
|
is continued from the apparent point of failure. |
|
This command |
|
is useful when transferring very large files over networks that |
|
are prone to dropping connections. |
|
.It Ic rename Ar from-name to-name |
|
Rename the file |
|
.Ar from-name |
|
on the remote machine to the file |
|
.Ar to-name . |
|
.It Ic reput Ar local-file Op Ar remote-file |
|
Reput acts like put, except that if |
|
.Ar remote-file |
|
exists and is |
|
smaller than |
|
.Ar local-file , |
|
.Ar remote-file |
|
is presumed to be |
|
a partially transferred copy of |
|
.Ar local-file |
|
and the transfer |
|
is continued from the apparent point of failure. |
|
This command |
|
is useful when transferring very large files over networks that |
|
are prone to dropping connections. |
|
.It Ic reset |
|
Clear reply queue. |
|
This command re-synchronizes command/reply sequencing with the remote |
|
FTP server. |
|
Resynchronization may be necessary following a violation of the FTP protocol |
|
by the remote server. |
|
.It Ic restart Ar marker |
|
Restart the immediately following |
|
.Ic get |
.Ic get |
or |
for each file name specified. |
|
.It Ic mput Ar local-files |
|
Do a |
.Ic put |
.Ic put |
at the |
for each file name specified. |
indicated |
|
.Ar marker . |
|
On |
|
.Ux |
|
systems, |
|
.Ar marker |
|
is usually a byte |
|
offset into the file. |
|
.It Ic rhelp Op Ar command-name |
|
Request help from the remote FTP server. |
|
If a |
|
.Ar command-name |
|
is specified, it is supplied to the server as well. |
|
.It Ic rmdir Ar directory-name |
|
Delete a directory on the remote machine. |
|
.It Ic rstatus Op Ar file |
|
With no arguments, show status of remote machine. |
|
If |
|
.Ar file |
|
is specified, show status of |
|
.Ar file |
|
on remote machine. |
|
.It Ic runique Op Ic on | off |
|
Toggle storing of files on the local system with unique filenames. |
|
If a file already exists with a name equal to the target |
|
local filename for a |
|
.Ic get |
|
or |
|
.Ic mget |
|
command, a |
|
.Dq .1 |
|
is appended to the name. |
|
If the resulting name matches another existing file, |
|
a |
|
.Dq .2 |
|
is appended to the original name. |
|
If this process continues up to |
|
.Dq .99 , |
|
an error message is printed, and the transfer does not take place. |
|
The generated unique filename will be reported. |
|
Note that |
|
.Ic runique |
|
will not affect local files generated from a shell command |
|
(see below). |
|
The default value is off. |
|
.It Ic send Ar local-file Op Ar remote-file |
|
A synonym for |
|
.Ic put . |
|
.It Ic sendport Op Ic on | off |
|
Toggle the use of |
|
.Dv PORT |
|
commands. |
|
By default, |
|
.Nm |
|
will attempt to use a |
|
.Dv PORT |
|
command when establishing |
|
a connection for each data transfer. |
|
The use of |
|
.Dv PORT |
|
commands can prevent delays |
|
when performing multiple file transfers. |
|
If the |
|
.Dv PORT |
|
command fails, |
|
.Nm |
|
will use the default data port. |
|
When the use of |
|
.Dv PORT |
|
commands is disabled, no attempt will be made to use |
|
.Dv PORT |
|
commands for each data transfer. |
|
This is useful for certain FTP implementations which do ignore |
|
.Dv PORT |
|
commands but, incorrectly, indicate they've been accepted. |
|
.It Ic site Ar arg ... |
|
The arguments specified are sent, verbatim, to the remote FTP server as a |
|
.Dv SITE |
|
command. |
|
.It Ic size Ar file |
|
Return size of |
|
.Ar file |
|
on remote machine. |
|
.It Ic status |
|
Show the current status of |
|
.Nm . |
|
.\" .It Ic struct Op Ar struct-name |
|
.\" Set the file transfer |
|
.\" .Ar structure |
|
.\" to |
|
.\" .Ar struct-name . |
|
.\" By default, |
|
.\" .Dq file |
|
.\" structure is used. |
|
.It Ic sunique Op Ic on | off |
|
Toggle storing of files on remote machine under unique file names. |
|
The remote FTP server must support the FTP protocol |
|
.Dv STOU |
|
command for |
|
successful completion. |
|
The remote server will report the unique name. |
|
Default value is off. |
|
.It Ic system |
|
Show the type of operating system running on the remote machine. |
|
.It Ic trace Op Ic on | off |
|
Toggle packet tracing. |
|
.It Ic type Op Ar type-name |
|
Set the file transfer |
|
.Ic type |
|
to |
|
.Ar type-name . |
|
If no type is specified, the current type |
|
is printed. |
|
The default type is |
|
.Dq binary . |
|
.It Ic umask Op Ar newmask |
|
Set the default umask on the remote server to |
|
.Ar newmask . |
|
If |
|
.Ar newmask |
|
is omitted, the current umask is printed. |
|
.It Xo |
|
.Ic user Ar username |
|
.Op Ar password Op Ar account |
|
.Xc |
|
Identify yourself to the remote FTP server. |
|
If the |
|
.Ar password |
|
is not specified and the server requires it, |
|
.Nm |
|
will prompt the user for it (after disabling local echo). |
|
If an |
|
.Ar account |
|
field is not specified, and the FTP server requires it, |
|
the user will be prompted for it. |
|
If an |
|
.Ar account |
|
field is specified, an account command will |
|
be relayed to the remote server after the login sequence |
|
is completed if the remote server did not require it |
|
for logging in. |
|
Unless |
|
.Nm |
|
is invoked with |
|
.Dq auto-login |
|
disabled, this process is done automatically on initial connection to the |
|
FTP server. |
|
.It Ic verbose Op Ic on | off |
|
Toggle verbose mode. |
|
In verbose mode, all responses from |
|
the FTP server are displayed to the user. |
|
In addition, |
|
if verbose is on, when a file transfer completes, statistics |
|
regarding the efficiency of the transfer are reported. |
|
By default, |
|
verbose is on. |
|
.El |
.El |
.Pp |
|
Command arguments which have embedded spaces may be quoted with |
|
quote |
|
.Pq Ql \&" |
|
marks. |
|
.Pp |
|
Commands which toggle settings can take an explicit |
|
.Ic on |
|
or |
|
.Ic off |
|
argument to force the setting appropriately. |
|
.Pp |
|
If |
|
.Nm |
|
receives a |
|
.Dv SIGINFO |
|
(see the |
|
.Dq status |
|
argument of |
|
.Xr stty 1 ) |
|
signal whilst a transfer is in progress, the current transfer rate |
|
statistics will be written to the standard error output, in the |
|
same format as the standard completion message. |
|
.Sh AUTO-FETCHING FILES |
.Sh AUTO-FETCHING FILES |
In addition to standard commands, this version of |
In addition to standard commands, this version of |
.Nm |
.Nm |
|
|
.Pp |
.Pp |
The following formats are valid syntax for an auto-fetch element: |
The following formats are valid syntax for an auto-fetch element: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Ar host : Ns / Ns Ar file Ns Op / |
|
.Dq Classic |
|
.Nm |
|
format. |
|
.Sm off |
.Sm off |
.It Xo |
.It Xo ftp:// |
.Pf ftp:// Op Ar user : password No @ |
|
.Ar host Op : Ar port |
.Ar host Op : Ar port |
.No / Ar file Op / |
.No / Ar file |
.Xc |
.Xc |
.Sm on |
.Sm on |
An FTP URL, retrieved using the FTP protocol if |
An FTP URL, retrieved using the FTP protocol if |
|
|
isn't defined. |
isn't defined. |
Otherwise, transfer using HTTP via the proxy defined in |
Otherwise, transfer using HTTP via the proxy defined in |
.Ev ftp_proxy . |
.Ev ftp_proxy . |
If a |
|
.Ar user |
|
and |
|
.Ar password |
|
are given and |
|
.Ev ftp_proxy |
|
isn't defined, |
|
log in as |
|
.Ar user |
|
with a password of |
|
.Ar password . |
|
.Sm off |
.Sm off |
.It Xo |
.It Xo http:// |
.Pf http:// Op Ar user : password No @ |
|
.Ar host Op : Ar port |
.Ar host Op : Ar port |
.No / Ar file |
.No / Ar file |
.Xc |
.Xc |
|
|
If |
If |
.Ev http_proxy |
.Ev http_proxy |
is defined, it is used as a URL to an HTTP proxy server. |
is defined, it is used as a URL to an HTTP proxy server. |
If a |
|
.Ar user |
|
and |
|
.Ar password |
|
are given and |
|
.Ev http_proxy |
|
isn't defined, |
|
log in as |
|
.Ar user |
|
with a password of |
|
.Ar password |
|
using Basic authentication. |
|
.Sm off |
.Sm off |
.It Xo |
.It Xo https:// |
.Pf https:// Op Ar user : password No @ |
|
.Ar host Op : Ar port |
.Ar host Op : Ar port |
.No / Ar file |
.No / Ar file |
.Xc |
.Xc |
|
|
.Ev http_proxy |
.Ev http_proxy |
is defined, this HTTPS proxy server will be used to fetch the |
is defined, this HTTPS proxy server will be used to fetch the |
file using the CONNECT method. |
file using the CONNECT method. |
If a |
|
.Ar user |
|
and |
|
.Ar password |
|
are given and |
|
.Ev http_proxy |
|
isn't defined, |
|
log in as |
|
.Ar user |
|
with a password of |
|
.Ar password |
|
using Basic authentication. |
|
.It Pf file: Ar file |
.It Pf file: Ar file |
.Ar file |
.Ar file |
is retrieved from a mounted file system. |
is retrieved from a mounted file system. |
.El |
.El |
.Pp |
|
If a classic format or an FTP URL format has a trailing |
|
.Sq / , |
|
then |
|
.Nm |
|
will connect to the site and |
|
.Ic cd |
|
to the directory given as the path, and leave the user in interactive |
|
mode ready for further input. |
|
.Pp |
|
If |
|
.Ar file |
|
contains a glob character and globbing is enabled |
|
(see |
|
.Ic glob ) , |
|
then the equivalent of |
|
.Ic mget Ar file |
|
is performed. |
|
.Pp |
|
If no |
|
.Fl o |
|
option is specified, and |
|
the directory component of |
|
.Ar file |
|
contains no globbing characters, |
|
then |
|
it is stored in the current directory as the |
|
.Xr basename 1 |
|
of |
|
.Ar file . |
|
If |
|
.Fl o Ar output |
|
is specified, then |
|
.Ar file |
|
is stored as |
|
.Ar output . |
|
Otherwise, the remote name is used as the local name. |
|
.Sh ABORTING A FILE TRANSFER |
|
To abort a file transfer, use the terminal interrupt key |
|
(usually Ctrl-C). |
|
Sending transfers will be immediately halted. |
|
Receiving transfers will be halted by sending an FTP protocol |
|
.Dv ABOR |
|
command to the remote server, and discarding any further data received. |
|
The speed at which this is accomplished depends upon the remote |
|
server's support for |
|
.Dv ABOR |
|
processing. |
|
If the remote server does not support the |
|
.Dv ABOR |
|
command, an |
|
.Ql ftp\*(Gt |
|
prompt will not appear until the remote server has completed |
|
sending the requested file. |
|
.Pp |
|
The terminal interrupt key sequence will be ignored when |
|
.Nm |
|
has completed any local processing and is awaiting a reply |
|
from the remote server. |
|
A long delay in this mode may result from the ABOR processing described |
|
above, or from unexpected behavior by the remote server, including |
|
violations of the FTP protocol. |
|
If the delay results from unexpected remote server behavior, the local |
|
.Nm |
|
program must be killed by hand. |
|
.Sh FILE NAMING CONVENTIONS |
|
Files specified as arguments to |
|
.Nm |
|
commands are processed according to the following rules. |
|
.Bl -enum |
|
.It |
|
If |
|
.Sq - |
|
is specified as a local file name, the standard input (for reading) |
|
or standard output (for writing) |
|
is used. |
|
.It |
|
If the first character of a local file name is |
|
.Sq \&| , |
|
the |
|
remainder of the argument is interpreted as a shell command. |
|
.Nm |
|
then forks a shell, using |
|
.Xr popen 3 |
|
with the argument supplied, and reads (writes) from the standard output |
|
(standard input). |
|
If the shell command includes spaces, the argument |
|
must be quoted; e.g., |
|
.Qq ls -lt . |
|
A particularly |
|
useful example of this mechanism is: |
|
.Qq ls \&. |more . |
|
.It |
|
Failing the above checks, if |
|
.Dq globbing |
|
is enabled, |
|
local file names are expanded |
|
according to the rules used in the |
|
.Xr csh 1 |
|
.Ic glob |
|
command. |
|
If the |
|
.Nm |
|
command expects a single local file (e.g., |
|
.Ic put ) , |
|
only the first filename generated by the |
|
.Dq globbing |
|
operation is used. |
|
.It |
|
For |
|
.Ic mget |
|
commands and |
|
.Ic get |
|
commands with unspecified local file names, the local filename is |
|
the remote filename, which may be altered by a |
|
.Ic case , |
|
.Ic ntrans , |
|
or |
|
.Ic nmap |
|
setting. |
|
The resulting filename may then be altered if |
|
.Ic runique |
|
is on. |
|
.It |
|
For |
|
.Ic mput |
|
commands and |
|
.Ic put |
|
commands with unspecified remote file names, the remote filename is |
|
the local filename, which may be altered by a |
|
.Ic ntrans |
|
or |
|
.Ic nmap |
|
setting. |
|
The resulting filename may then be altered by the remote server if |
|
.Ic sunique |
|
is on. |
|
.El |
|
.Sh FILE TRANSFER PARAMETERS |
|
The FTP specification specifies many parameters which may |
|
affect a file transfer. |
|
The |
|
.Ic type |
|
may be one of |
|
.Dq ascii , |
|
.Dq binary , |
|
or |
|
.Dq image . |
|
.Nm |
|
supports the ASCII and image types of file transfer. |
|
.Pp |
|
.Nm |
|
supports only the default values for the remaining |
|
file transfer parameters: |
|
.Ic mode , |
|
.Ic form , |
|
and |
|
.Ic struct . |
|
.Sh THE .netrc FILE |
|
The |
|
.Pa .netrc |
|
file contains login and initialization information |
|
used by the auto-login process. |
|
It resides in the user's home directory. |
|
The following tokens are recognized; they may be separated by spaces, |
|
tabs, or new-lines: |
|
.Bl -tag -width password |
|
.It Ic machine Ar name |
|
Identify a remote machine |
|
.Ar name . |
|
The auto-login process searches the |
|
.Pa .netrc |
|
file for a |
|
.Ic machine |
|
token that matches the remote machine specified on the |
|
.Nm |
|
command line or as an |
|
.Ic open |
|
command argument. |
|
Once a match is made, the subsequent |
|
.Pa .netrc |
|
tokens are processed, |
|
stopping when the end of file is reached or another |
|
.Ic machine |
|
or a |
|
.Ic default |
|
token is encountered. |
|
.It Ic default |
|
This is the same as |
|
.Ic machine |
|
.Ar name |
|
except that |
|
.Ic default |
|
matches any name. |
|
There can be only one |
|
.Ic default |
|
token, and it must be after all |
|
.Ic machine |
|
tokens. |
|
This is normally used as: |
|
.Pp |
|
.Dl default login anonymous password user@site |
|
.Pp |
|
thereby giving the user |
|
.Ar automatic |
|
anonymous FTP login to |
|
machines not specified in |
|
.Pa .netrc . |
|
This can be overridden |
|
by using the |
|
.Fl n |
|
flag to disable auto-login. |
|
.It Ic login Ar name |
|
Identify a user on the remote machine. |
|
If this token is present, the auto-login process will initiate |
|
a login using the specified |
|
.Ar name . |
|
.It Ic password Ar string |
|
Supply a password. |
|
If this token is present, the auto-login process will supply the |
|
specified string if the remote server requires a password as part |
|
of the login process. |
|
Note that if this token is present in the |
|
.Pa .netrc |
|
file for any user other |
|
than |
|
.Ar anonymous , |
|
.Nm |
|
will abort the auto-login process if the |
|
.Pa .netrc |
|
is readable by |
|
anyone besides the user. |
|
.It Ic account Ar string |
|
Supply an additional account password. |
|
If this token is present, the auto-login process will supply the |
|
specified string if the remote server requires an additional |
|
account password, or the auto-login process will initiate an |
|
.Dv ACCT |
|
command if it does not. |
|
.It Ic macdef Ar name |
|
Define a macro. |
|
This token functions like the |
|
.Nm |
|
.Ic macdef |
|
command functions. |
|
A macro is defined with the specified name; its contents begin with the |
|
next |
|
.Pa .netrc |
|
line and continue until a null line (consecutive new-line |
|
characters) is encountered. |
|
Like the other tokens in the |
|
.Pa .netrc |
|
file, a |
|
.Ic macdef |
|
is applicable only to the |
|
.Ic machine |
|
definition preceding it. |
|
A |
|
.Ic macdef |
|
entry cannot be utilized by multiple |
|
.Ic machine |
|
definitions; rather, it must be defined following each |
|
.Ic machine |
|
it is intended to be used with. |
|
If a macro named |
|
.Ic init |
|
is defined, it is automatically executed as the last step in the |
|
auto-login process. |
|
.El |
|
.Sh COMMAND LINE EDITING |
|
.Nm |
|
supports interactive command line editing, via the |
|
.Xr editline 3 |
|
library. |
|
It is enabled with the |
|
.Ic edit |
|
command, and is enabled by default if input is from a tty. |
|
Previous lines can be recalled and edited with the arrow keys, |
|
and other GNU Emacs-style editing keys may be used as well. |
|
.Pp |
|
The |
|
.Xr editline 3 |
|
library is configured with a |
|
.Pa .editrc |
|
file \- refer to |
|
.Xr editrc 5 |
|
for more information. |
|
.Pp |
|
An extra key binding is available to |
|
.Nm |
|
to provide context sensitive command and filename completion |
|
(including remote file completion). |
|
To use this, bind a key to the |
|
.Xr editline 3 |
|
command |
|
.Ic ftp-complete . |
|
By default, this is bound to the TAB key. |
|
.Sh ENVIRONMENT |
.Sh ENVIRONMENT |
.Nm |
.Nm |
utilizes the following environment variables: |
utilizes the following environment variables: |
.Bl -tag -width "FTPSERVERPORT" |
.Bl -tag -width Ds |
.It Ev FTPMODE |
|
Overrides the default operation mode. |
|
Recognized values are: |
|
.Pp |
|
.Bl -tag -width "passive " -offset indent -compact |
|
.It passive |
|
passive mode FTP only |
|
.It active |
|
active mode FTP only |
|
.It auto |
|
automatic determination of passive or active (this is the default) |
|
.It gate |
|
gate-ftp mode |
|
.El |
|
.It Ev FTPSERVER |
|
Host to use as gate-ftp server when |
|
.Ic gate |
|
is enabled. |
|
.It Ev FTPSERVERPORT |
|
Port to use when connecting to gate-ftp server when |
|
.Ic gate |
|
is enabled. |
|
Default is port returned by a |
|
.Fn getservbyname |
|
lookup of |
|
.Dq ftpgate/tcp . |
|
.It Ev HOME |
|
For default location of a |
|
.Pa .netrc |
|
file, if one exists. |
|
.It Ev PAGER |
|
Used by |
|
.Ic page |
|
to display files. |
|
.It Ev SHELL |
|
For default shell. |
|
.It Ev ftp_proxy |
.It Ev ftp_proxy |
URL of FTP proxy to use when making FTP URL requests |
URL of FTP proxy to use when making FTP URL requests |
(if not defined, use the standard FTP protocol). |
(if not defined, use the standard FTP protocol). |
.It Ev http_proxy |
.It Ev http_proxy |
URL of HTTP proxy to use when making HTTP or HTTPS URL requests. |
URL of HTTP proxy to use when making HTTP(S) URL requests. |
.It Ev http_cookies |
|
Path of a Netscape-like cookiejar file to use when making |
|
HTTP or HTTPS URL requests. |
|
.El |
.El |
.Sh PORT ALLOCATION |
.Sh PORT ALLOCATION |
For active mode data connections, |
For active mode data connections, |
|
|
.Va net.inet.ip.porthifirst |
.Va net.inet.ip.porthifirst |
and |
and |
.Va net.inet.ip.porthilast . |
.Va net.inet.ip.porthilast . |
.Sh SEE ALSO |
|
.Xr basename 1 , |
|
.Xr csh 1 , |
|
.Xr more 1 , |
|
.Xr stty 1 , |
|
.Xr tar 1 , |
|
.Xr tftp 1 , |
|
.Xr editline 3 , |
|
.Xr getservbyname 3 , |
|
.Xr popen 3 , |
|
.Xr editrc 5 , |
|
.Xr services 5 , |
|
.Xr ftp-proxy 8 , |
|
.Xr ftpd 8 |
|
.Sh STANDARDS |
|
.Rs |
|
.%A J. Postel |
|
.%A J. Reynolds |
|
.%D October 1985 |
|
.%R RFC 959 |
|
.%T FILE TRANSFER PROTOCOL (FTP) |
|
.Re |
|
.Pp |
|
.Rs |
|
.%A P. Hethmon |
|
.%D March 2007 |
|
.%R RFC 3659 |
|
.%T Extensions to FTP |
|
.Re |
|
.Sh HISTORY |
.Sh HISTORY |
The |
The |
.Nm |
.Nm |
command appeared in |
command first appeard in |
.Bx 4.2 . |
.Bx 4.2 . |
.Sh BUGS |
A complete rewrite of the |
Correct execution of many commands depends upon proper behavior |
.Nm |
by the remote server. |
command first appeared in |
.Pp |
.Ox x.x . |
In the recursive mode of |
.Sh AUTHORS |
.Ic mget , |
.An Sunil Nimmagadda Aq Mt sunil@openbsd.org |
files and directories starting with whitespace are ignored |
.Sh CAVEATS |
because the list cannot be parsed any other way. |
While aborting a data transfer, certain FTP servers violate |
|
the protocol by not responding with a 426 reply first, thereby making |
|
.Nm |
|
wait indefinitely for a correct reply. |