.\" SUCH DAMAGE.
.\"
.\" @(#)ftp.1 6.18 (Berkeley) 7/30/91
-.\"
-.so man1/tmac.doc
-.Dd July 30, 1991
-.Dt FTP 1
-.Os BSD 4.2
-.Sh NAME
-.Nm ftp
-.Nd
-.Tn ARPANET
-file transfer program
-.Sh SYNOPSIS
-.Nm ftp
-.Op Fl v
-.Op Fl d
-.Op Fl i
-.Op Fl n
-.Op Fl g
-.Op Fl k Ar realm
-.Op Ar host
-.Sh DESCRIPTION
-.Nm Ftp
+.\" "
+.so man1/header.doc
+.TH FTP 1 \*h
+.SH NAME
+ftp \- ARPANET file transfer program
+.SH SYNOPSIS
+.B ftp
+[\fB\-v\fP] [\fB\-d\fP] [\fB\-i\fP] [\fB\-n\fP] [\fB\-g\fP] [\fB\-k\fP
+\fIrealm\fP] [\fIhost\fP] [\fB\-forward\fP]
+.SH DESCRIPTION
+.B FTP
is the user interface to the
-.Tn ARPANET
-standard File Transfer Protocol.
-The program allows a user to transfer files to and from a
-remote network site.
-.Pp
-Options may be specified at the command line, or to the
-command interpreter.
-.Bl -tag -width flag
-.It Fl v
+.SM ARPANET
+standard File Transfer Protocol. The program allows a user to transfer
+files to and from a remote network site.
+.SH OPTIONS
+Options may be specified at the command line, or to the command
+interpreter.
+.TP
+.B \-v
Verbose option forces
-.Nm ftp
-to show all responses from the remote server, as well
-as report on data transfer statistics.
-.It Fl n
+.B ftp
+to show all responses from the remote server, as well as report on data
+transfer statistics.
+.TP
+.B \-n
Restrains
-.Nm ftp
-from attempting \*(Lqauto-login\*(Rq upon initial connection.
-If auto-login is enabled,
-.Nm ftp
+.B ftp
+from attempting ``auto-login'' upon initial connection. If
+auto-login is enabled,
+.B ftp
attempts to authenticate to the
-.Tn FTP
+.SM FTP
server by sending the
-.Dv AUTH
+.SM AUTH
command, using whichever authentication types are locally supported.
Once an authentication type is accepted, an authentication protocol
will proceed by issuing
-.Dv ADAT
+.SM ADAT
commands.
-.Nm ftp
-then
-will check the
-.Pa .netrc
-(see below) file in the user's home directory for an entry describing
-an account on the remote machine.
-If no entry exists,
-.Nm ftp
+.B ftp
+then will check the
+.I .netrc
+(see below) file in the user's home directory for an entry describing an
+account on the remote machine. If no entry exists,
+.B ftp
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 login.
-.It Fl i
-Turns off interactive prompting during
-multiple file transfers.
-.It Fl d
+.TP
+.B \-i
+Turns off interactive prompting during multiple file transfers.
+.TP
+.B \-d
Enables debugging.
-.It Fl g
+.TP
+.B \-g
Disables file name globbing.
-.It Fl k Ar realm
-When using Kerberos V4 authentication, get tickets in
-.Ar realm.
-.El
-.Pp
+.TP
+\fB\-k\fP \fIrealm\fP
+When using Kerberos authentication, get tickets in
+.IR realm .
+.TP
+.B \-forward
+Cause tickets to be forwarded to the remote host.
+.SH COMMANDS
The client host with which
-.Nm ftp
-is to communicate may be specified on the command line.
-If this is done,
-.Nm ftp
+.B ftp
+is to communicate may be specified on the command line. If this is
+done,
+.B ftp
will immediately attempt to establish a connection to an
-.Tn FTP
+.SM FTP
server on that host; otherwise,
-.Nm ftp
-will enter its command interpreter and await instructions
-from the user.
+.B ftp
+will enter its command interpreter and await instructions from the user.
When
-.Nm ftp
+.B ftp
is awaiting commands from the user the prompt
-.Ql ftp>
-is provided to the user.
-The following commands are recognized
-by
-.Nm ftp :
-.Bl -tag -width Fl
-.It Ic \&! Op Ar command Op Ar args
-Invoke an interactive shell on the local machine.
-If there are arguments, the first is taken to be a command to execute
-directly, with the rest of the arguments as its arguments.
-.It Ic \&$ Ar macro-name Op Ar args
+``ftp>''
+is provided to the user. The following commands are recognized by
+.BR ftp :
+.TP
+\fB\&!\fP [\fIcommand\fP] [\fIargs\fP]]
+Invoke an interactive shell on the local machine. If there are
+arguments, the first is taken to be a command to execute directly, with
+the rest of the arguments as its arguments.
+.TP
+\fB\&$\fP \fImacro-name\fP [\fIargs\fP]
Execute the macro
-.Ar macro-name
+.I macro-name
that was defined with the
-.Ic macdef
-command.
-Arguments are passed to the macro unglobbed.
-.It Ic account Op Ar passwd
-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
+.B macdef
+command. Arguments are passed to the macro unglobbed.
+.TP
+\fBaccount\fP [\fIpasswd\fP]
+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.
+.TP
+\fBappend\fP \fIlocal-file\fP [\fIremote-file\fP]
+Append a local file to a file on the remote machine. If
+.I remote-file
+is left unspecified, the local file name is used in naming the remote
+file after being altered by any
+.B ntrans
or
-.Ic nmap
-setting.
-File transfer uses the current settings for
-.Ic type ,
-.Ic format ,
-.Ic mode ,
+.B nmap
+setting. File transfer uses the current settings for
+.BR type ,
+.BR format ,
+.BR mode ,
and
-.Ic structure .
-.It Ic ascii
+.BR structure .
+.TP
+.B ascii
Set the file transfer
-.Ic type
+.B type
to network
-.Tn ASCII .
+.SM ASCII .
This is the default type.
-.It Ic bell
-Arrange that a bell be sounded after each file transfer
-command is completed.
-.It Ic binary
+.TP
+.B bell
+Arrange that a bell be sounded after each file transfer command is
+completed.
+.TP
+.B binary
Set the file transfer
-.Ic type
-to support binary image transfer.
-.It Ic bye
+.B type
+to support binary file transfer.
+.TP
+.B bye
Terminate the
-.Tn FTP
-session with the remote server
-and exit
-.Nm ftp .
+.SM FTP
+session with the remote server and exit
+.BR ftp .
An end of file will also terminate the session and exit.
-.It Ic case
+.TP
+.B case
Toggle remote computer file name case mapping during
-.Ic mget
-commands.
-When
-.Ic case
+.B mget
+commands. When
+.B 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-name
+upper case are written in the local directory with the letters mapped to
+lower case.
+.TP
+\fBcd\fP \fIremote-directory\fP
+Change the working directory on the remote machine to
+.IR remote-directory .
+.TP
+.B cdup
+Change the remote machine working directory to the parent of the current
+remote machine working directory.
+.TP
+\fBchmod\fP \fImode\fP \fIfile-name\fP
Change the permission modes of the file
-.Ar file-name
-on the remote
-system to
-.Ar mode .
-.It Ic clear
-Set the protection level on data transfers to \*(Lqclear\*(Rq.
-If no
-.Dv ADAT
+.I file-name
+on the remote system to
+.IR mode .
+.TP
+.B clear
+Set the protection level on data transfers to ``clear''. If no
+.SM ADAT
command succeeded, then this is the default protection level.
-.It Ic close
+.TP
+.B close
Terminate the
-.Tn FTP
-session with the remote server, and
-return to the command interpreter.
+.SM FTP
+session with the remote server, and return to the command interpreter.
Any defined macros are erased.
-.It Ic \&cr
-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
-.Pf non\- Ns Ux
-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
+.TP
+.B cr
+Toggle carriage return stripping during ascii type file retrieval.
+Records are denoted by a carriage return/linefeed sequence during ascii
+type file transfer. When
+.B cr
+is on (the default), carriage returns are stripped from this sequence to
+conform with the
+.SM UNIX
+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
+.B cr
is off.
-.It Ic delete Ar remote-file
+.TP
+\fBdelete\fP \fIremote-file\fP
Delete the file
-.Ar remote-file
+.I remote-file
on the remote machine.
-.It Ic debug Op Ar debug-value
-Toggle debugging mode.
-If an optional
-.Ar debug-value
-is specified it is used to set the debugging level.
-When debugging is on,
-.Nm ftp
-prints each command sent to the remote machine, preceded
-by the string
-.Ql \-\->
-.It Xo
-.Ic dir
-.Op Ar remote-directory
-.Op Ar local-file
-.Xc
-Print a listing of the directory contents in the
-directory,
-.Ar remote-directory ,
+.TP
+\fBdebug\fP [\fIdebug-value\fP]
+Toggle debugging mode. If an optional
+.I debug-value
+is specified it is used to set the debugging level. When debugging is
+on,
+.B ftp
+prints each command sent to the remote machine, preceded by the string
+`\-\->'
+.TP
+\fBdir\fP [\fIremote-directory\fP] [\fIlocal-file\fP]
+Print a listing of the directory contents in the directory,
+.IR remote-directory ,
and, optionally, placing the output in
-.Ar local-file .
+.IR local-file .
If interactive prompting is on,
-.Nm ftp
+.B ftp
will prompt the user to verify that the last argument is indeed the
target local file for receiving
-.Ic dir
-output.
-If no directory is specified, the current working
-directory on the remote machine is used.
-If no local
-file is specified, or
-.Ar local-file
+.B dir
+output. If no directory is specified, the current working directory on
+the remote machine is used. If no local file is specified, or
+.I local-file
is
-.Fl ,
+`\fB\-\fP',
output comes to the terminal.
-.It Ic disconnect
+.TP
+.B disconnect
A synonym for
-.Ar close .
-.It Ic form Ar format
+.IR close .
+.TP
+\fBform\fP \fIformat\fP
Set the file transfer
-.Ic form
+.B form
to
-.Ar format .
-The default format is \*(Lqfile\*(Rq.
-.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 ,
+.IR format .
+The default format is ``file''.
+.TP
+\fBget\fP \fIremote-file\fP [\fIlocal-file\fP]
+Retrieve the file
+.I 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
+.BR case ,
+.BR ntrans ,
and
-.Ic nmap
-settings.
-The current settings for
-.Ic type ,
-.Ic form ,
-.Ic mode ,
+.B nmap
+settings. The current settings for
+.BR type ,
+.BR form ,
+.BR mode ,
and
-.Ic structure
+.B structure
are used while transferring the file.
-.It Ic glob
+.TP
+.B glob
Toggle filename expansion for
-.Ic mdelete ,
-.Ic mget
+.BR mdelete ,
+.BR mget ,
and
-.Ic mput .
+.BR mput .
If globbing is turned off with
-.Ic glob ,
-the file name arguments
-are taken literally and not expanded.
-Globbing for
-.Ic mput
+.BR glob ,
+the file name arguments are taken literally and not expanded. Globbing
+for
+.B mput
is done as in
-.Xr csh 1 .
+.IR csh (1).
For
-.Ic mdelete
+.B 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
-.Ql mls remote-files \-
+.BR 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
+`mls remote-files \-'
Note:
-.Ic mget
+.B mget
and
-.Ic mput
-are not meant to transfer
-entire directory subtrees of files.
-That can be done by
-transferring a
-.Xr tar 1
+.B mput
+are not meant to transfer entire directory subtrees of files. That can
+be done by transferring a
+.IR tar (1)
archive of the subtree (in binary mode).
-.It Ic hash
-Toggle hash-sign (``#'') printing for each data block
-transferred.
-The size of a data block is 1024 bytes.
-.It Ic help Op Ar command
+.TP
+.B hash
+Toggle hash-sign (``#'') printing for each data block transferred. The
+size of a data block is 1024 bytes.
+.TP
+\fBhelp\fP [\fIcommand\fP]
Print an informative message about the meaning of
-.Ar command .
+.IR command .
If no argument is given,
-.Nm ftp
+.B ftp
prints a list of the known commands.
-.It Ic idle Op Ar seconds
+.TP
+\fBidle\fP [\fIseconds\fP]
Set the inactivity timer on the remote server to
-.Ar seconds
-seconds.
-If
-.Ar seconds
+.I seconds
+seconds. If
+.I seconds
is omitted, the current inactivity timer is printed.
-.It Ic lcd Op Ar directory
-Change the working directory on the local machine.
-If
-no
-.Ar directory
+.TP
+\fBlcd\fP [\fIdirectory\fP]
+Change the working directory on the local machine. If no
+.I directory
is specified, the user's home directory is used.
-.It Xo
-.Ic \&ls
-.Op Ar remote-directory
-.Op Ar local-file
-.Xc
-Print a listing of the contents of a
-directory on the remote machine.
+.TP
+\fBls\fP [\fIremote-directory\fP] [\fIlocal-file\fP]
+Print a listing of the contents of a directory on the remote machine.
The listing includes any system-dependent information that the server
chooses to include; for example, most
-.Ux
-systems will produce
-output from the command
-.Ql ls \-l .
-(See also
-.Ic nlist . )
+.SM UNIX
+systems will produce output from the command `ls \-l'. (See also
+.BR nlist .)
If
-.Ar remote-directory
-is left unspecified, the current working directory is used.
-If interactive prompting is on,
-.Nm ftp
+.I remote-directory
+is left unspecified, the current working directory is used. If
+interactive prompting is on,
+.B ftp
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
-.Ar local-file
+.B ls
+output. If no local file is specified, or if
+.I local-file
is
-.Sq Fl ,
+`\fB\-\fP',
the output is sent to the terminal.
-.It Ic macdef Ns 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.
+.TP
+\fBmacdef\fP\fImacro-name\fP
+Define a macro. Subsequent lines are stored as the macro
+.IR 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.
Macros remain defined until a
-.Ic close
-command is executed.
-The macro processor interprets `$' and `\e' as special characters.
-A `$' followed by a number (or numbers) is replaced by the
-corresponding argument on the macro invocation command line.
-A `$' followed by an `i' signals that macro processor that the
-executing macro is to be looped.
-On the first pass `$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 `\e' followed by any character is replaced by that character.
-Use the `\e' to prevent special treatment of the `$'.
-.It Ic mdelete Op Ar remote-files
-Delete the
-.Ar remote-files
+.B close
+command is executed. The macro processor interprets `$' and `\e' as
+special characters. A `$' followed by a number (or numbers) is replaced
+by the corresponding argument on the macro invocation command line. A
+`$' followed by an `i' signals that macro processor that the executing
+macro is to be looped. On the first pass `$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 `\e' followed by any
+character is replaced by that character. Use the `\e' to prevent
+special treatment of the `$'.
+.TP
+\fBmdelete\fP [\fIremote-files\fP]
+Delete
+.I remote-files
on the remote machine.
-.It Ic mdir Ar remote-files local-file
+.TP
+\fBmdir\fP \fIremote-files\fP \fIlocal-file\fP
Like
-.Ic dir ,
-except multiple remote files may be specified.
-If interactive prompting is on,
-.Nm ftp
+.BR dir ,
+except multiple remote files may be specified. If interactive prompting
+is on,
+.B ftp
will prompt the user to verify that the last argument is indeed the
target local file for receiving
-.Ic mdir
+.B mdir
output.
-.It Ic mget Ar remote-files
+.TP
+\fBmget\fP \fIremote-files\fP
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 ,
+.I remote-files
+on the remote machine and do a
+.B get
+for each file name thus produced. See
+.B glob
+for details on the filename expansion. Resulting file names will then
+be processed according to
+.BR case ,
+.BR 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" .
-.It Ic mkdir Ar directory-name
+.B nmap
+settings. Files are transferred into the local working directory, which
+can be changed with `lcd directory'; new local directories can be
+created with
+`\&! mkdir directory'.
+.TP
+\fBmkdir\fP \fIdirectory-name\fP
Make a directory on the remote machine.
-.It Ic mls Ar remote-files local-file
+.TP
+\fBmls\fP \fIremote-files\fP \fIlocal-file\fP
Like
-.Ic nlist ,
-except multiple remote files may be specified,
-and the
-.Ar local-file
-must be specified.
-If interactive prompting is on,
-.Nm ftp
+.BR nlist ,
+except multiple remote files may be specified, and the
+.I local-file
+must be specified. If interactive prompting is on,
+.B ftp
will prompt the user to verify that the last argument is indeed the
target local file for receiving
-.Ic mls
+.B mls
output.
-.It Ic mode Op Ar mode-name
+.TP
+\fBmode\fP [\fImode-name\fP]
Set the file transfer
-.Ic mode
+.B mode
to
-.Ar mode-name .
-The default mode is \*(Lqstream\*(Rq mode.
-.It Ic modtime Ar file-name
+.IR mode-name .
+The default mode is ``stream'' mode.
+.TP
+\fBmodtime\fP \fIfile-name\fP
Show the last modification time of the file on the remote machine.
-.It Ic mput Ar local-files
-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
+.TP
+\fBmput\fP \fIlocal-files\fP
+Expand wild cards in the list of local files given as arguments and do a
+.B put
+for each file in the resulting list. See
+.B glob
+for details of filename expansion. Resulting file names will then be
+processed according to
+.B ntrans
and
-.Ic nmap
+.B nmap
settings.
-.It Ic newer Ar file-name
+.TP
+\fBnewer\fP \fIfile-name\fP
Get the file only if the modification time of the remote file is more
-recent that the file on the current system.
-If the file does not
-exist on the current system, the remote file is considered
-.Ic newer .
+recent that the file on the current system. If the file does not exist
+on the current system, the remote file is considered
+.BR newer .
Otherwise, this command is identical to
-.Ar get .
-.It Xo
-.Ic nlist
-.Op Ar remote-directory
-.Op Ar local-file
-.Xc
-Print a list of the files in a
-directory on the remote machine.
-If
-.Ar remote-directory
-is left unspecified, the current working directory is used.
-If interactive prompting is on,
-.Nm ftp
+.BR get .
+.TP
+\fBnlist\fP [\fIremote-directory\fP] [\fIlocal-file\fP]
+Print a list of the files in a directory on the remote machine. If
+.I remote-directory
+is left unspecified, the current working directory is used. If
+interactive prompting is on,
+.B ftp
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
-.Ar local-file
-is
-.Fl ,
-the output is sent to the terminal.
-.It Ic nmap Op Ar inpattern outpattern
-Set or unset the filename mapping mechanism.
-If no arguments are specified, the filename mapping mechanism is unset.
-If arguments are specified, remote filenames are mapped during
-.Ic mput
+.B nlist
+output. If no local file is specified, or if
+.I local-file
+is `\fB\-\fP', the output is sent to the terminal.
+.TP
+\fBnmap\fP [\fIinpattern\fP \fIoutpattern\fP]
+Set or unset the filename mapping mechanism. If no arguments are
+specified, the filename mapping mechanism is unset. If arguments are
+specified, remote filenames are mapped during
+.B mput
commands and
-.Ic put
+.B put
commands issued without a specified remote target filename.
If arguments are specified, local filenames are mapped during
-.Ic mget
+.B mget
commands and
-.Ic get
-commands issued without a specified local target filename.
-This command is useful when connecting to a
-.No non\- Ns Ux
-remote computer
-with different file naming conventions or practices.
-The mapping follows the pattern set by
-.Ar inpattern
+.B get
+commands issued without a specified local target filename. This command
+is useful when connecting to non\-UNIX remote computer with different
+file naming conventions or practices. The mapping follows the pattern
+set by
+.I inpattern
and
-.Ar outpattern .
-.Op Ar Inpattern
-is a template for incoming filenames (which may have already been
-processed according to the
-.Ic ntrans
+.IR outpattern .
+[\fIInpattern\fP] is a template for incoming filenames (which may have
+already been processed according to the
+.B ntrans
and
-.Ic case
-settings).
-Variable templating is accomplished by including the
+.B case
+settings). Variable templating is accomplished by including the
sequences `$1', `$2', ..., `$9' in
-.Ar inpattern .
-Use `\\' to prevent this special treatment of the `$' character.
-All other characters are treated literally, and are used to determine the
-.Ic nmap
-.Op Ar inpattern
-variable values.
-For example, given
-.Ar inpattern
+.IR inpattern .
+Use `\e' to prevent this special treatment of the `$' character. All
+other characters are treated literally, and are used to determine the
+.B nmap
+[\fIinpattern\fP] variable values. For example, given
+.I 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 `$1', `$2', ...., `$9' are replaced by any value resulting
-from the
-.Ar inpattern
-template.
-The sequence `$0' is replace by the original filename.
-Additionally, the sequence
-.Ql Op Ar seq1 , Ar seq2
-is replaced by
-.Op Ar seq1
-if
-.Ar seq1
+"mydata", and $2 would have the value "data". The
+.I outpattern
+determines the resulting mapped filename. The sequences `$1', `$2',
+...., `$9' are replaced by any value resulting from the
+.I inpattern
+template. The sequence `$0' is replace by the original filename.
+Additionally, the sequence `[\fIseq1\fP, \fIseq2\fP]' is replaced by
+[\fIseq1\fP] if
+.I seq1
is not a null string; otherwise it is replaced by
-.Ar seq2 .
+.IR seq2 .
For example, the command
-.Pp
-.Bd -literal -offset indent -compact
-nmap $1.$2.$3 [$1,$2].[$2,file]
-.Ed
-.Pp
-would yield
-the output filename "myfile.data" for input filenames "myfile.data" and
-"myfile.data.old", "myfile.file" for the input filename "myfile", and
-"myfile.myfile" for the input filename ".myfile".
+.sp
+.nf
+ nmap $1.$2.$3 [$1,$2].[$2,file]
+.fi
+.sp
+would yield the output filename "myfile.data" for input filenames
+"myfile.data" and "myfile.data.old", "myfile.file" for the input
+filename "myfile", and "myfile.myfile" for the input filename ".myfile".
Spaces may be included in
-.Ar outpattern ,
-as in the example: `nmap $1 sed "s/ *$//" > $1' .
-Use the `\e' character to prevent special treatment
-of the `$','[','[', and `,' 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
+.IR outpattern ,
+as in the example: `nmap $1 sed "s/ *$//" > $1'. Use the `\e' character
+to prevent special treatment of the `$','[',']', and `,' characters.
+.TP
+\fBntrans\fP [\fIinchars\fP [\fIoutchars\fP]]
+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
+.B 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
+.B put
+commands issued without a specified remote target filename. If
+arguments are specified, characters in local filenames are translated
+during
+.B mget
commands and
-.Ic get
-commands issued without a specified local target filename.
-This command is useful when connecting to a
-.No non\- Ns Ux
-remote computer
-with different file naming conventions or practices.
-Characters in a filename matching a character in
-.Ar inchars
+.B 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
+.I inchars
are replaced with the corresponding character in
-.Ar outchars .
+.IR outchars .
If the character's position in
-.Ar inchars
+.I inchars
is longer than the length of
-.Ar outchars ,
+.IR outchars ,
the character is deleted from the file name.
-.It Ic open Ar host Op Ar port
+.TP
+\fBopen\fP \fIhost\fP [\fIport\fP] [\fB\-forward\fP]
Establish a connection to the specified
-.Ar host
-.Tn FTP
-server.
-An optional port number may be supplied,
-in which case,
-.Nm ftp
+.I host
+.SM FTP
+server. An optional port number may be supplied, in which case,
+.B ftp
will attempt to contact an
-.Tn FTP
-server at that port.
-If the
-.Ic auto-login
+.SM FTP
+server at that port. If the
+.B auto-login
option is on (default),
-.Nm ftp
+.B ftp
will attempt to authenticate to the
-.Tn FTP
+.SM FTP
server by sending the
-.Dv AUTH
-command, using whichever authentication types which are locally supported.
-Once an authentication type is accepted, an authentication protocol
-will proceed by issuing
-.Dv ADAT
+.SM AUTH
+command, using whichever authentication types which are locally
+supported. Once an authentication type is accepted, an authentication
+protocol will proceed by issuing
+.SM ADAT
commands.
-.Nm ftp
-will also attempt to automatically log the user in to
-the
-.Tn FTP
-server (see below).
-.It Ic private
-Set the protection level on data transfers to \*(Lqprivate\*(Rq.
-Data transmissions will now be
-confidentiality and integrity protected by encryption.
+.B ftp
+will also attempt to automatically log the user in to the
+.SM FTP
+server (see below). If the
+.B \-forward
+option is specified,
+.B ftp
+will forward a copy of the user's Kerberos tickets to the remote host.
+.TP
+.B private
+Set the protection level on data transfers to ``private''. Data
+transmissions are confidentiality and integrity protected by encryption.
If no
-.Dv ADAT
-command succeeded, then the only possible level is \*(Lqclear\*(Rq.
-.It Ic prompt
-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
+.SM ADAT
+command succeeded, then the only possible level is ``clear''.
+.TP
+.B prompt
+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
+.B mget
or
-.Ic mput
+.B mput
will transfer all files, and any
-.Ic mdelete
+.B mdelete
will delete all files.
-.It Ic protect Op Ar protection-level
+.TP
+\fBprotect\fP [\fIprotection-level\fP]
Set the protection level on data transfers to
-.Ar protection-level .
-The valid protection levels are \*(Lqclear\*(Rq
-for unprotected data transmissions, \*(Lqsafe\*(Rq
-for data transmissions integrity
-protected by cryptographic checksum, and \*(Lqprivate\*(Rq
-for data transmissions confidentiality and integrity
-protected by encryption.
-If no
-.Dv ADAT
-command succeeded, then the only possible level is \*(Lqclear\*(Rq.
-If no level is specified, the current level is printed.
-The default protection level is \*(Lqclear\*(Rq.
-.It Ic proxy Ar ftp-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
+.IR protection-level .
+The valid protection levels are ``clear'' for unprotected data
+transmissions, ``safe'' for data transmissions integrity protected by
+cryptographic checksum, and ``private'' for data transmissions
+confidentiality and integrity protected by encryption. If no
+.SM ADAT
+command succeeded, then the only possible level is ``clear''. If no
+level is specified, the current level is printed. The default
+protection level is ``clear''.
+.TP
+\fBproxy\fP \fIftp-command\fP
+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
+.B proxy
command should be an
-.Ic open ,
-to establish the secondary control connection.
-Enter the command "proxy ?" to see other ftp commands executable on the
-secondary connection.
+.B open ,
+to establish the secondary control connection. Enter the command
+"proxy ?" to see other ftp commands executable on the secondary connection.
The following commands behave differently when prefaced by
-.Ic proxy :
-.Ic open
+.BR proxy :
+.B open
will not define new macros during the auto-login process,
-.Ic close
+.B close
will not erase existing macro definitions,
-.Ic get
+.B 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 ,
+.B mget
+transfer files from the host on the primary control connection to the
+host on the secondary control connection, and
+.BR put ,
+.BR 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
+.B 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
+.SM PASV
command by the server on the secondary control connection.
-.It Ic put Ar local-file Op Ar remote-file
-Store a local file on the remote machine.
-If
-.Ar remote-file
-is left unspecified, the local file name is used
-after processing according to any
-.Ic ntrans
+.TP
+\fBput\fP \fIlocal-file\fP [\fIremote-file\fP]
+Store a local file on the remote machine. If
+.I remote-file
+is left unspecified, the local file name is used after processing
+according to any
+.B ntrans
or
-.Ic nmap
-settings
-in naming the remote file.
-File transfer uses the
-current settings for
-.Ic type ,
-.Ic format ,
-.Ic mode ,
+.B nmap
+settings in naming the remote file. File transfer uses the current
+settings for
+.BR type ,
+.BR format ,
+.BR mode ,
and
-.Ic structure .
-.It Ic pwd
-Print the name of the current working directory on the remote
-machine.
-.It Ic quit
+.BR structure .
+.TP
+.B pwd
+Print the name of the current working directory on the remote machine.
+.TP
+.B quit
A synonym for
-.Ic bye .
-.It Ic quote Ar arg1 arg2 ...
+.BR bye .
+.TP
+\fBquote\fP \fIarg1\fP [\fIarg2\fP] [\fI...\fP]
The arguments specified are sent, verbatim, to the remote
-.Tn FTP
+.SM FTP
server.
-.It Ic recv Ar remote-file Op Ar local-file
+.TP
+\fBrecv\fP \fIremote-file\fP [\fIlocal-file\fP]
A synonym for get.
-.It Ic reget Ar remote-file Op Ar local-file
+.TP
+\fBreget\fP \fIremote-file\fP [\fIlocal-file\fP]
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
+.I local-file
+exists and is smaller than
+.IR remote-file ,
+.I local-file
+is presumed to be a partially transferred copy of
+.I 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 remotehelp Op Ar command-name
+.TP
+\fBremotehelp\fP [\fIcommand-name\fP]
Request help from the remote
-.Tn FTP
-server.
-If a
-.Ar command-name
+.SM FTP
+server. If a
+.I command-name
is specified it is supplied to the server as well.
-.It Ic remotestatus Op Ar file-name
-With no arguments, show status of remote machine.
-If
-.Ar file-name
+.TP
+\fBremotestatus\fP [\fIfile-name\fP]
+With no arguments, show status of remote machine. If
+.I file-name
is specified, show status of
-.Ar file-name
+.I file-name
on remote machine.
-.It Xo
-.Ic rename
-.Op Ar from
-.Op Ar to
-.Xc
+.TP
+\fBrename\fP [\fIfrom\fP] [\fIto\fP]
Rename the file
-.Ar from
+.I from
on the remote machine, to the file
-.Ar to .
-.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
+.IR to .
+.TP
+.B 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.
+.TP
+\fBrestart\fP \fImarker\fP
Restart the immediately following
-.Ic get
+.B get
or
-.Ic put
-at the
-indicated
-.Ar marker .
-On
-.Ux
-systems, marker is usually a byte
-offset into the file.
-.It Ic rmdir Ar directory-name
+.B put
+at the indicated
+.IR marker .
+On UNIX systems, marker is usually a byte offset into the file.
+.TP
+\fBrmdir\fP \fIdirectory-name\fP
Delete a directory on the remote machine.
-.It Ic runique
-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
+.TP
+.B runique
+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
+.B get
or
-.Ic mget
-command, a ".1" is appended to the name.
-If the resulting name matches another existing file,
-a ".2" is appended to the original name.
-If this process continues up to ".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).
+.B mget
+command, a ".1" is appended to the name. If the resulting name matches
+another existing file, a ".2" is appended to the original name. If this
+process continues up to ".99", an error message is printed, and the
+transfer does not take place. The generated unique filename will be
+reported. Note that
+.B runique
+will not affect local files generated from a shell command (see below).
The default value is off.
-.It Ic safe
-Set the protection level on data transfers to \*(Lqsafe\*(Rq.
-Data transmissions will now be
-integrity protected by cryptographic checksum.
-If no
-.Dv ADAT
-command succeeded, then the only possible level is \*(Lqclear\*(Rq.
-.It Ic send Ar local-file Op Ar remote-file
+.TP
+.B safe
+Set the protection level on data transfers to ``safe''. Data
+transmissions are integrity-protected by cryptographic checksum. If no
+.SM ADAT
+command succeeded, then the only possible level is ``clear''.
+.TP
+\fBsend\fP \fIlocal-file\fP [\fIremote-file\fP]
A synonym for put.
-.It Ic sendport
+.TP
+.B sendport
Toggle the use of
-.Dv PORT
-commands.
-By default,
-.Nm ftp
+.SM PORT
+commands. By default,
+.B ftp
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
+.SM PORT
+command when establishing a connection for each data transfer. The use
+of
+.SM PORT
+commands can prevent delays when performing multiple file transfers. If
+the
+.SM PORT
command fails,
-.Nm ftp
-will use the default data port.
-When the use of
-.Dv PORT
+.B ftp
+will use the default data port. When the use of
+.SM PORT
commands is disabled, no attempt will be made to use
-.Dv PORT
-commands for each data transfer.
-This is useful
-for certain
-.Tn FTP
+.SM PORT
+commands for each data transfer. This is useful for certain
+.SM FTP
implementations which do ignore
-.Dv PORT
+.SM PORT
commands but, incorrectly, indicate they've been accepted.
-.It Ic site Ar arg1 arg2 ...
+.TP
+\fBsite\fP \fIarg1\fP [\fIarg2\fP] [\fI...\fP]
The arguments specified are sent, verbatim, to the remote
-.Tn FTP
+.SM FTP
server as a
-.Dv SITE
+.SM SITE
command.
-.It Ic size Ar file-name
+.TP
+\fBsize\fP \fIfile-name\fP
Return size of
-.Ar file-name
+.I file-name
on remote machine.
-.It Ic status
+.TP
+.B status
Show the current status of
-.Nm ftp .
-.It Ic struct Op Ar struct-name
+.BR ftp .
+.TP
+\fBstruct\fP \fIstruct-name\fP
Set the file transfer
-.Ar structure
+.I structure
to
-.Ar struct-name .
-By default \*(Lqstream\*(Rq structure is used.
-.It Ic sunique
+.IR struct-name .
+By default ``stream'' structure is used.
+.TP
+.B sunique
Toggle storing of files on remote machine under unique file names.
Remote ftp server must support ftp protocol
-.Dv STOU
-command for
-successful completion.
-The remote server will report unique name.
-Default value is off.
-.It Ic system
+.SM STOU
+command for successful completion. The remote server will report unique
+name. Default value is off.
+.TP
+.B system
Show the type of operating system running on the remote machine.
-.It Ic tenex
-Set the file transfer type to that needed to
-talk to
-.Tn TENEX
+.TP
+.B tenex
+Set the file transfer type to that needed to talk to
+.SM TENEX
machines.
-.It Ic trace
+.TP
+.B trace
Toggle packet tracing.
-.It Ic type Op Ar type-name
+.TP
+\fBtype\fP [\fItype-name\fP]
Set the file transfer
-.Ic type
+.B type
to
-.Ar type-name .
-If no type is specified, the current type
-is printed.
-The default type is network
-.Tn ASCII .
-.It Ic umask Op Ar newmask
+.IR type-name .
+If no type is specified, the current type is printed. The default type
+is network
+.SM ASCII.
+.TP
+\fBumask\fP [\fInewmask\fP]
Set the default umask on the remote server to
-.Ar newmask .
+.IR newmask .
If
-.Ar newmask
+.I newmask
is omitted, the current umask is printed.
-.It Xo
-.Ic user Ar user-name
-.Op Ar password
-.Op Ar account
-.Xc
+.TP
+\fBuser\fP \fIuser-name\fP [\fIpassword\fP] [\fIaccount\fP]
Identify yourself to the remote
-.Tn FTP
-server.
-If the
-.Ar password
+.SM FTP
+server. If the
+.I password
is not specified and the server requires it,
-.Nm ftp
-will prompt the user for it (after disabling local echo).
-If an
-.Ar account
+.B ftp
+will prompt the user for it (after disabling local echo). If an
+.I account
field is not specified, and the
-.Tn 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 ftp
-is invoked with \*(Lqauto-login\*(Rq disabled, this
-process is done automatically on initial connection to
-the
-.Tn FTP
+.SM FTP
+server requires it, the user will be prompted for it. If an
+.I 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
+.B ftp
+is invoked with ``auto-login'' disabled, this process is done
+automatically on initial connection to the
+.SM FTP
server.
-.It Ic verbose
-Toggle verbose mode.
-In verbose mode, all responses from
-the
-.Tn 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.
-.It Ic ? Op Ar command
+.TP
+.B verbose
+Toggle verbose mode. In verbose mode, all responses from the
+.SM 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.
+.TP
+\fB \&? [\fIcommand\fP]
A synonym for help.
-.El
-.Pp
-Command arguments which have embedded spaces may be quoted with
-quote `"' marks.
-.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 a ftp protocol
-.Dv ABOR
+.PP
+Command arguments which have embedded spaces may be quoted with quote
+`"' marks.
+.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 a
+.SM FTP
+protocol
+.SM 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>
-prompt will not appear until the remote server has completed
-sending the requested file.
-.Pp
+The speed at which this is accomplished depends upon the remote server's
+support for
+.SM ABOR
+processing. If the remote server does not support the
+.SM ABOR
+command, an `ftp>' 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 ftp
-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 ftp
+.B ftp
+has completed any local processing and is awaiting a reply from the
+remote server. A long delay in this mode may result from the
+.SM 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
+.B ftp
program must be killed by hand.
-.Sh FILE NAMING CONVENTIONS
+.SH FILE NAMING CONVENTIONS
Files specified as arguments to
-.Nm ftp
+.B ftp
commands are processed according to the following rules.
-.Bl -enum
-.It
-If the file name
-.Sq Fl
-is specified, the
-.Ar stdin
+.TP
+1.
+If the file name `\fB-\fP' is specified,
+.I stdin
(for reading) or
-.Ar stdout
+.I stdout
(for writing) is used.
-.It
-If the first character of the file name is
-.Sq \&| ,
-the
-remainder of the argument is interpreted as a shell command.
-.Nm Ftp
+.TP
+2.
+If the first character of the file name is `\&|', the remainder of the
+argument is interpreted as a shell command.
+.B Ftp
then forks a shell, using
-.Xr popen 3
-with the argument supplied, and reads (writes) from the stdout
-(stdin).
-If the shell command includes spaces, the argument
-must be quoted; e.g.
-\*(Lq" ls -lt"\*(Rq.
-A particularly
-useful example of this mechanism is: \*(Lqdir more\*(Rq.
-.It
-Failing the above checks, if ``globbing'' is enabled,
-local file names are expanded
-according to the rules used in the
-.Xr csh 1 ;
+.IR popen (3)
+with the argument supplied, and reads from (writes to) stdout (stdin).
+If the shell command includes spaces, the argument must be quoted; e.g.
+``" ls -lt"''. A particularly useful example of this mechanism is:
+``dir more''.
+.TP
+3.
+Failing the above checks, if ``globbing'' is enabled, local file names
+are expanded according to the rules used in
+.IR csh (1);
c.f. the
-.Ic glob
-command.
-If the
-.Nm ftp
+.B glob
+command. If the
+.B ftp
command expects a single local file (.e.g.
-.Ic put ) ,
-only the first filename generated by the "globbing" operation is used.
-.It
+.BR put ),
+only the first filename generated by the ``globbing'' operation is used.
+.TP
+4.
For
-.Ic mget
+.B 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 ,
+.B get
+commands with unspecified local file names, the local filename is the
+remote filename, which may be altered by a
+.BR case ,
+.BR ntrans ,
or
-.Ic nmap
-setting.
-The resulting filename may then be altered if
-.Ic runique
+.B nmap
+setting. The resulting filename may then be altered if
+.B runique
is on.
-.It
+.TP
+5.
For
-.Ic mput
+.B 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
+.B put
+commands with unspecified remote file names, the remote filename is the
+local filename, which may be altered by a
+.B ntrans
or
-.Ic nmap
-setting.
-The resulting filename may then be altered by the remote server if
-.Ic sunique
+.B nmap
+setting. The resulting filename may then be altered by the remote
+server if
+.B 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 \*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary),
-\*(Lqebcdic\*(Rq, and \*(Lqlocal byte size\*(Rq (for
-.Tn PDP Ns -10's
-and
-.Tn PDP Ns -20's
-mostly).
-.Nm Ftp
-supports the ascii and image types of file transfer,
-plus local byte size 8 for
-.Ic tenex
+.SH FILE TRANSFER PARAMETERS
+The FTP specification specifies many parameters which may affect a file
+transfer. The
+.B type
+may be one of ``ascii'', ``image'' (binary), ``ebcdic'', and ``local
+byte size'' (mostly for PDP-10's and PDP-20's).
+.B Ftp
+supports the ascii and image types of file transfer, plus local byte
+size 8 for
+.B tenex
mode transfers.
-.Pp
-.Nm Ftp
-supports only the default values for the remaining
-file transfer parameters:
-.Ic mode ,
-.Ic form ,
+.PP
+.B Ftp
+supports only the default values for the remaining file transfer
+parameters:
+.BR mode ,
+.BR form ,
and
-.Ic struct .
-.Sh THE .netrc FILE
+.BR 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
+.I .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:
+.TP
+\fBmachine\fP \fIname\fP
Identify a remote machine
-.Ar name .
+.IR name .
The auto-login process searches the
-.Pa .netrc
+.I .netrc
file for a
-.Ic machine
+.B machine
token that matches the remote machine specified on the
-.Nm ftp
+.B ftp
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
+.B open
+command argument. Once a match is made, the subsequent
+.I .netrc
+tokens are processed, stopping when the end of file is reached or
+another
+.B machine
or a
-.Ic default
+.B default
token is encountered.
-.It Ic default
+.TP
+.B default
This is the same as
-.Ic machine
-.Ar name
+.B machine
+.I name
except that
-.Ic default
-matches any name.
-There can be only one
-.Ic default
+.B default
+matches any name. There can be only one
+.B 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
+.B machine
+tokens. This is normally used as:
+.sp
+ default login anonymous password user@site
+.sp
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
+.I automatic
+anonymous ftp login to machines not specified in
+.IR .netrc .
+This can be overridden by using the
+.B \-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 ftp
+.TP
+\fBlogin\fP \fIname\fP
+Identify a user on the remote machine. If this token is present, the
+auto-login process will initiate a login using the specified
+.IR name .
+.TP
+\fBpassword\fP \fIstring\fP
+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
+.I .netrc
+file for any user other than
+.IR anonymous ,
+.B ftp
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
+.I .netrc
+is readable by anyone besides the user.
+.TP
+\fBaccount\fP \fIstring\fP
+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
+.SM ACCT
command if it does not.
-.It Ic macdef Ar name
-Define a macro.
-This token functions like the
-.Nm ftp
-.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.
-If a macro named
-.Ic init
+.TP
+\fBmacdef\fP \fIname\fP
+Define a macro. This token functions like the
+.B ftp
+.B macdef
+command functions. A macro is defined with the specified name; its
+contents begin with the next
+.I .netrc
+line and continue until a null line (consecutive new-line characters) is
+encountered. If a macro named
+.B init
is defined, it is automatically executed as the last step in the
auto-login process.
-.El
-.Sh ENVIRONMENT
-.Nm Ftp
+.SH ENVIRONMENT
+.B Ftp
utilizes the following environment variables.
-.Bl -tag -width Fl
-.It Ev HOME
+.TP
+.SM HOME
For default location of a
-.Pa .netrc
+.I .netrc
file, if one exists.
-.It Ev SHELL
+.TP
+.SM SHELL
For default shell.
-.El
-.Sh SEE ALSO
-.Xr ftpd 8
-.Pp
-Lunt, S. J.,
-FTP Security Extensions,
-Internet Draft,
-November 1993.
-.Sh HISTORY
+.SH SEE ALSO
+.IR ftpd (8)
+.PP
+Lunt, S. J., FTP Security Extensions, Internet Draft, November 1993.
+.SH HISTORY
The
-.Nm ftp
-command appeared in
-.Bx 4.2 .
-.Sh BUGS
-Correct execution of many commands depends upon proper behavior
-by the remote server.
-.Pp
-An error in the treatment of carriage returns
-in the
-.Bx 4.2
-ascii-mode transfer code
-has been corrected.
-This correction may result in incorrect transfers of binary files
-to and from
-.Bx 4.2
-servers using the ascii type.
-Avoid this problem by using the binary image type.
+.B ftp
+command appeared in 4.2BSD.
+.SH BUGS
+Correct execution of many commands depends upon proper behavior by the
+remote server.
+.PP
+An error in the treatment of carriage returns in the 4.2BSD ascii-mode
+transfer code has been corrected. This correction may result in
+incorrect transfers of binary files to and from 4.2BSD servers using the
+ascii type. Avoid this problem by using the binary image type.
.\" SUCH DAMAGE.
.\"
.\" @(#)ftpd.8 6.9 (Berkeley) 3/16/91
-.\"
-.so man1/tmac.doc
-.Dd March 16, 1991
-.Dt FTPD 8
-.Os BSD 4.2
-.Sh NAME
-.Nm ftpd
-.Nd
-.Tn DARPA
+.\" "
+.so man1/header.doc
+.TH FTPD 8 \*h
+.SH NAME
+.B ftpd
+\-
+.SM DARPA
Internet File Transfer Protocol server
-.Sh SYNOPSIS
-.Nm ftpd
-.Op Fl d
-.Op Fl l
-.Op Fl t Ar timeout
-.Op Fl T Ar maxtimeout
-.Op Fl p Ar port
-.Op Fl r Ar realm-file
-.Op Fl s Ar srvtab
-.Sh DESCRIPTION
-.Nm Ftpd
+.SH SYNOPSIS
+.B ftpd
+[\fB\-d\fP] [\fB\-l\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-T\fP
+\fImaxtimeout\fP] [\fB\-p\fP \fIport\fP] [\fB\-r\fP \fIrealm-file\fP]
+[\fB\-s\fP \fIsrvtab\fP]
+.SH DESCRIPTION
+.B Ftpd
is the
-.Tn DARPA
-Internet File Transfer Protocol
-server process. The server uses the
-.Tn TCP
-protocol
-and listens at the port specified in the
-.Dq ftp
-service specification; see
-.Xr services 5 .
-.Pp
+.SM DARPA
+Internet File Transfer Protocol server process. The server uses the
+.SM TCP
+protocol and listens at the port specified in the ``ftp'' service
+specification; see
+.IR services (5).
+.PP
Available options:
-.Bl -tag -width Ds
-.It Fl d
+.TP
+.B \-d
Debugging information is written to the syslog.
-.It Fl l
+.TP
+.B \-l
Each
-.Xr ftp 1
+.IR ftp (1)
session is logged in the syslog.
-.It Fl t
+.TP
+.B \-t
The inactivity timeout period is set to
-.Ar timeout
+.I timeout
seconds (the default is 15 minutes).
-.It Fl T
-A client may also request a different timeout period;
-the maximum period allowed may be set to
-.Ar timeout
+.TP
+.B \-T
+A client may also request a different timeout period; the maximum period
+allowed may be set to
+.I timeout
seconds with the
-.Fl T
-option.
-The default limit is 2 hours.
-.It Fl a
+.B \-T
+option. The default limit is 2 hours.
+.TP
+.B \-a
Only permit Kerberos authenticated or anonymous logins.
-.It Fl p Ar port
+.TP
+\fB\-p\fP \fIport\fP
Run as a server and accept a connection on
-.Ar port.
+.IR port .
Normally the ftp server is invoked by
-.Xr inetd 8 .
-.It Fl r Ar realm-file
+.IR inetd (8).
+.TP
+\fB\-r\fP \fIrealm-file\fP
Sets the name of the
-.Pa krb.conf
+.I krb.conf
file to use. The default value is normally
-.Pa /usr/kerberos/lib/krb.conf.
-.It Fl s Ar srvtab
+.IR /usr/kerberos/lib/krb.conf .
+.TP
+\fB\-s\fP \fIsrvtab\fP
Sets the name of the
-.Pa srvtab
+.I srvtab
file to use. The default value is normally
-.Pa /etc/krb-srvtab.
-.El
-.Pp
-The ftp server currently supports the following ftp
-requests; case is not distinguished.
-.Bl -column "Request" -offset indent
-.It Request Ta "Description"
-.It ABOR Ta "abort previous command"
-.It ACCT Ta "specify account (ignored)"
-.It ADAT Ta "send an authentication protocol message"
-.It ALLO Ta "allocate storage (vacuously)"
-.It APPE Ta "append to a file"
-.It AUTH Ta "specify an authentication protocol to be performed"
-.It CDUP Ta "change to parent of current working directory"
-.It CWD Ta "change working directory"
-.It DELE Ta "delete a file"
-.It ENC Ta "send a privacy and integrity protected command (given in argument)"
-.It HELP Ta "give help information"
-.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA"
-.It MIC Ta "send an integrity protected command (given in argument)"
-.It MKD Ta "make a directory"
-.It MDTM Ta "show last modification time of file"
-.It MODE Ta "specify data transfer" Em mode
-.It NLST Ta "give name list of files in directory"
-.It NOOP Ta "do nothing"
-.It PASS Ta "specify password"
-.It PASV Ta "prepare for server-to-server transfer"
-.It PBSZ Ta "specify a protection buffer size"
-.It PORT Ta "specify data connection port"
-.It PROT Ta "specify a protection level under which to protect data transfers"
-.It PWD Ta "print the current working directory"
-.It QUIT Ta "terminate session"
-.It REST Ta "restart incomplete transfer"
-.It RETR Ta "retrieve a file"
-.It RMD Ta "remove a directory"
-.It RNFR Ta "specify rename-from file name"
-.It RNTO Ta "specify rename-to file name"
-.It SITE Ta "non-standard commands (see next section)"
-.It SIZE Ta "return size of file"
-.It STAT Ta "return status of server"
-.It STOR Ta "store a file"
-.It STOU Ta "store a file with a unique name"
-.It STRU Ta "specify data transfer" Em structure
-.It SYST Ta "show operating system type of server system"
-.It TYPE Ta "specify data transfer" Em type
-.It USER Ta "specify user name"
-.It XCUP Ta "change to parent of current working directory (deprecated)"
-.It XCWD Ta "change working directory (deprecated)"
-.It XMKD Ta "make a directory (deprecated)"
-.It XPWD Ta "print the current working directory (deprecated)"
-.It XRMD Ta "remove a directory (deprecated)"
-.El
-.Pp
+.IR /etc/krb-srvtab .
+.PP
+The ftp server currently supports the following ftp requests; case is
+not distinguished.
+.TP "\w'Request\ \ 'u"
+.B Request
+.B Description
+.sp -1
+.TP
+ABOR
+abort previous command
+.sp -1
+.TP
+ACCT
+specify account (ignored)
+.sp -1
+.TP
+ADAT
+send an authentication protocol message
+.sp -1
+.TP
+ALLO
+allocate storage (vacuously)
+.sp -1
+.TP
+APPE
+append to a file
+.sp -1
+.TP
+AUTH
+specify an authentication protocol to be performed
+.sp -1
+.TP
+CDUP
+change to parent of current working directory
+.sp -1
+.TP
+CWD
+change working directory
+.sp -1
+.TP
+DELE
+delete a file
+.sp -1
+.TP
+ENC
+send a privacy and integrity protected command (given in argument)
+.sp -1
+.TP
+HELP
+give help information
+.sp -1
+.TP
+LIST
+give list files in a directory (``ls -lgA'')
+.sp -1
+.TP
+MIC
+send an integrity protected command (given in argument)
+.sp -1
+.TP
+MKD
+make a directory
+.sp -1
+.TP
+MDTM
+show last modification time of file
+.sp -1
+.TP
+MODE
+specify data transfer
+.I mode
+.sp -1
+.TP
+NLST
+give name list of files in directory
+.sp -1
+.TP
+NOOP
+do nothing
+.sp -1
+.TP
+PASS
+specify password
+.sp -1
+.TP
+PASV
+prepare for server-to-server transfer
+.sp -1
+.TP
+PBSZ
+specify a protection buffer size
+.sp -1
+.TP
+PORT
+specify data connection port
+.sp -1
+.TP
+PROT
+specify a protection level under which to protect data transfers
+.sp -1
+.TP
+PWD
+print the current working directory
+.sp -1
+.TP
+QUIT
+terminate session
+.sp -1
+.TP
+REST
+restart incomplete transfer
+.sp -1
+.TP
+RETR
+retrieve a file
+.sp -1
+.TP
+RMD
+remove a directory
+.sp -1
+.TP
+RNFR
+specify rename-from file name
+.sp -1
+.TP
+RNTO
+specify rename-to file name
+.sp -1
+.TP
+SITE
+non-standard commands (see next section)
+.sp -1
+.TP
+SIZE
+return size of file
+.sp -1
+.TP
+STAT
+return status of server
+.sp -1
+.TP
+STOR
+store a file
+.sp -1
+.TP
+STOU
+store a file with a unique name
+.sp -1
+.TP
+STRU
+specify data transfer
+.I structure
+.sp -1
+.TP
+SYST
+show operating system type of server system
+.sp -1
+.TP
+TYPE
+specify data transfer
+.I type
+.sp -1
+.TP
+USER
+specify user name
+.sp -1
+.TP
+XCUP
+change to parent of current working directory (deprecated)
+.sp -1
+.TP
+XCWD
+change working directory (deprecated)
+.sp -1
+.TP
+XMKD
+make a directory (deprecated)
+.sp -1
+.TP
+XPWD
+print the current working directory (deprecated)
+.sp -1
+.TP
+XRMD
+remove a directory (deprecated)
+.PP
The following non-standard or
-.Tn UNIX
-specific commands are supported
-by the
-SITE request.
-.Pp
-.Bl -column Request -offset indent
-.It Sy Request Ta Sy Description
-.It UMASK Ta change umask. Em E.g. SITE UMASK 002
-.It IDLE Ta set idle-timer. Em E.g. SITE IDLE 60
-.It CHMOD Ta change mode of a file. Em E.g.
+.SM UNIX
+specific commands are supported by the SITE request.
+.TP "\w'Request\ \ 'u"
+.B Request
+.B Description
+.sp -1
+.TP
+UMASK
+change umask.
+.IR E.g. ,
+SITE UMASK 002
+.sp -1
+.TP
+IDLE
+set idle-timer.
+.IR E.g. ,
+SITE IDLE 60
+.sp -1
+.TP
+CHMOD
+change mode of a file.
+.IR E.g. ,
SITE CHMOD 755 filename
-.It HELP Ta give help information. Em E.g. SITE HELP
-.El
-.Pp
+.sp -1
+.TP
+HELP
+give help information.
+.IR E.g. ,
+SITE HELP
+.PP
The remaining ftp requests specified in Internet
-.%T "RFC 959"
-are
-recognized, but not implemented.
-MDTM and SIZE are not specified in
-.%T "RFC 959" ,
+.I RFC 959
+are recognized, but not implemented. MDTM and SIZE are not specified in
+.I RFC
+.IR 959 ,
but will appear in the next updated FTP RFC.
-.Pp
-The ftp server will abort an active file transfer only when the
-ABOR
-command is preceded by a Telnet "Interrupt Process" (IP)
-signal and a Telnet "Synch" signal in the command Telnet stream,
-as described in Internet
-.%T "RFC 959" .
-If a
-STAT
-command is received during a data transfer, preceded by a Telnet IP
-and Synch, transfer status will be returned.
-.Pp
-.Nm Ftpd
+.PP
+The ftp server will abort an active file transfer only when the ABOR
+command is preceded by a Telnet "Interrupt Process" (IP) signal and a
+Telnet "Synch" signal in the command Telnet stream, as described in
+Internet
+.I RFC
+.IR 959 .
+If a STAT command is received during a data transfer, preceded by a
+Telnet IP and Synch, transfer status will be returned.
+.PP
+.B Ftpd
interprets file names according to the
-.Dq globbing
+``globbing''
conventions used by
-.Xr csh 1 .
-This allows users to utilize the metacharacters
-.Dq Li \&*?[]{}~ .
-.Pp
-.Nm Ftpd
-authenticates users according to the following rules:
-.Pp
-.Bl -enum -offset indent
-.It
+.IR csh (1).
+This allows users to utilize the metacharacters ``\&*?[]{}~''.
+.PP
+.B Ftpd
+authenticates users according to the following rules:
+.sp
+.TP
+ 1.
The user name must be in the password data base,
-.Pa /etc/passwd .
-.It
+.IR /etc/passwd .
+.TP
+ 2.
An
-.Dv AUTH
-command must be accepted, the ensuing authentication protocol
-(conducted via
-.Dv ADAT
-commands and replies)
-must successfully complete, and the authenticated user must permitted
-access. Otherwise, a valid password which is not null
-must be provided by the client.
-.It
+.SM AUTH
+command must be accepted, the ensuing authentication protocol (conducted
+via
+.SM ADAT
+commands and replies) must successfully complete, and the authenticated
+user must permitted access. Otherwise, a valid password which is not
+null must be provided by the client.
+.TP
+ 3.
The user name must not appear in the file
-.Pa /etc/ftpusers .
-.It
+.IR /etc/ftpusers .
+.TP
+ 4.
The user must have a standard shell returned by
-.Xr getusershell 3 .
-.It
-If the user name is
-.Dq anonymous
-or
-.Dq ftp ,
-an
-anonymous ftp account must be present in the password
-file (user
-.Dq ftp ) .
-In this case the user is allowed
-to log in by specifying any password (by convention this
+.IR getusershell (3).
+.TP
+ 5.
+If the user name is ``anonymous'' or ``ftp'', an anonymous ftp account
+must be present in the password file (user ``ftp''). In this case the
+user is allowed to log in by specifying any password (by convention this
is given as the client host's name).
-.El
-.Pp
-In the last case,
-.Nm ftpd
-takes special measures to restrict the client's access privileges.
-The server performs a
-.Xr chroot 2
-command to the home directory of the
-.Dq ftp
-user.
-In order that system security is not breached, it is recommended
-that the
-.Dq ftp
-subtree be constructed with care; the following
-rules are recommended.
-.Bl -tag -width "~ftp/pub" -offset indent
-.It Pa ~ftp
-Make the home directory owned by
-.Dq ftp
-and unwritable by anyone.
-.It Pa ~ftp/bin
-Make this directory owned by the super-user and unwritable by
-anyone. The program
-.Xr ls 1
-must be present to support the list command. This
-program should have mode 111.
-.It Pa ~ftp/etc
-Make this directory owned by the super-user and unwritable by
-anyone. The files
-.Xr passwd 5
+.PP
+In the last case,
+.B ftpd
+takes special measures to restrict the client's access privileges. The
+server performs a
+.IR chroot (2)
+command to the home directory of the ``ftp'' user. In order that system
+security is not breached, it is recommended that the ``ftp'' subtree be
+constructed with care; the following rules are recommended.
+.TP
+.I ~ftp
+Make the home directory owned by ``ftp'' and unwritable by anyone.
+.TP
+.I ~ftp/bin
+Make this directory owned by the super-user and unwritable by anyone.
+The program
+.IR ls (1)
+must be present to support the list command. This program should have
+mode 111.
+.TP
+.I ~ftp/etc
+Make this directory owned by the super-user and unwritable by anyone.
+The files
+.IR passwd (5)
and
-.Xr group 5
-must be present for the
-.Xr ls
-command to be able to produce owner names rather than numbers.
-The password field in
-.Xr passwd
-is not used, and should not contain real encrypted passwords.
-These files should be mode 444.
-.It Pa ~ftp/pub
-Make this directory mode 777 and owned by
-.Dq ftp .
-Users
-should then place files which are to be accessible via the
-anonymous account in this directory.
-.El
-.Pp
+.IR group (5)
+must be present for the
+.I ls
+command to be able to produce owner names rather than numbers. The
+password field in
+.I passwd
+is not used, and should not contain real encrypted passwords. These
+files should be mode 444.
+.TP
+.I ~ftp/pub
+Make this directory mode 777 and owned by ``ftp''. Users should then
+place files which are to be accessible via the anonymous account in this
+directory.
+.PP
If an
-.Dv ADAT
-command succeeds, the control channel must be either
-integrity or privacy protected.
-In this case, the
-.Dv MIC
+.SM ADAT
+command succeeds, the control channel must be either integrity or
+privacy protected. In this case, the
+.SM MIC
and
-.Dv ENC
-commands are the only commands allowed over the control channel.
-The argument to the
-.Dv MIC
-command is a base 64 encoded string which, when decoded, is an
-ftp command integrity protected with a cryptographic checksum.
-The argument to the
-.Dv ENC
-command is a base 64 encoded string which, when decoded, is an
-ftp command privacy and integrity protected with encryption.
-.Pp
+.SM ENC
+commands are the only commands allowed over the control channel. The
+argument to the
+.SM MIC
+command is a base 64 encoded string which, when decoded, is an ftp
+command integrity protected with a cryptographic checksum. The argument
+to the
+.SM ENC
+command is a base 64 encoded string which, when decoded, is an ftp
+command privacy and integrity protected with encryption.
+.PP
If an
-.Dv ADAT
-command succeeds,
-ftp replies will also be either integrity or privacy protected.
-.Pp
+.SM ADAT
+command succeeds, ftp replies will also be either integrity or privacy
+protected.
+.PP
If an
-.Dv ADAT
-command succeeds, the data channel can also be integrity or privacy protected.
-The
-.Dv PROT
-command accepts S for integrity and P for privacy protection.
-Unless an
-.Dv ADAT
+.SM ADAT
+command succeeds, the data channel can also be integrity or privacy
+protected. The
+.SM PROT
+command accepts S for integrity and P for privacy protection. Unless an
+.SM ADAT
command succeeds, the only protection level accepted by the
-.Dv PROT
+.SM PROT
command is C (clear).
-.Sh SEE ALSO
-.Xr ftp 1 ,
-.Xr getusershell 3 ,
-.Xr syslogd 8
-.Pp
-Lunt, S. J.,
-FTP Security Extensions,
-Internet Draft,
-November 1993.
-.Sh BUGS
-The anonymous account is inherently dangerous and should
-avoided when possible.
-.Pp
-The server must run as the super-user
-to create sockets with privileged port numbers. It maintains
-an effective user id of the logged in user, reverting to
-the super-user only when binding addresses to sockets. The
-possible security holes have been extensively
-scrutinized, but are possibly incomplete.
-.Sh HISTORY
+.SH SEE ALSO
+.IR ftp (1),
+.IR getusershell (3),
+.IR syslogd (8)
+.PP
+Lunt, S. J., FTP Security Extensions, Internet Draft, November 1993.
+.SH BUGS
+The anonymous account is inherently dangerous and should avoided when
+possible.
+.PP
+The server must run as the super-user to create sockets with privileged
+port numbers. It maintains an effective user id of the logged in user,
+reverting to the super-user only when binding addresses to sockets. The
+possible security holes have been extensively scrutinized, but are
+possibly incomplete.
+.SH HISTORY
The
-.Nm
-command appeared in
-.Bx 4.2 .
+.B ftpd
+command appeared in 4.2BSD.