+.\" Copyright (c) 1983 Regents of the University of California.
+.\" All rights reserved. The Berkeley software License Agreement
+.\" specifies the terms and conditions for redistribution.
+.\"
+.\" @(#)ftp.1 5.1 (Berkeley) %G%
+.\"
+.TH FTP 1C "18 July 1983"
+.UC 5
+.SH NAME
+ftp \- file transfer program
+.SH SYNOPSIS
+.B ftp
+[
+.B \-v
+] [
+.B \-d
+] [
+.B \-i
+] [
+.B \-n
+] [
+.B \-g
+] [
+.B host
+]
+.SH DESCRIPTION
+.I Ftp
+is the user interface to the ARPANET standard File Transfer Protocol.
+The program allows a user to transfer files to and from a
+remote network site.
+.PP
+The client host with which
+.I ftp
+is to communicate may be specified on the command line.
+If this is done,
+.I ftp
+will immediately attempt to establish a connection to an FTP
+server on that host; otherwise,
+.I ftp
+will enter its command interpreter and await instructions
+from the user. When
+.I ftp
+is awaiting commands from the user the prompt \*(lqftp>\*(rq
+is provided the user. The following commands are recognized
+by
+.IR ftp :
+.TP
+.B \&!
+Invoke a shell on the local machine.
+.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. File transfer uses the current settings for
+.IR type ,
+.IR format ,
+.IR mode ,
+and
+.IR structure .
+.TP
+.B ascii
+Set the file transfer
+.I type
+to network ASCII. This is the default type.
+.TP
+.B bell
+Arrange that a bell be sounded after each file transfer
+command is completed.
+.TP
+.B binary
+Set the file transfer
+.I type
+to support binary image transfer.
+.TP
+.B bye
+Terminate the FTP session with the remote server
+and exit
+.IR ftp .
+.TP
+.BI cd " remote-directory"
+Change the working directory on the remote machine
+to
+.IR remote-directory .
+.TP
+.B close
+Terminate the FTP session with the remote server, and
+return to the command interpreter.
+.TP
+.BI delete " remote-file"
+Delete the file
+.I remote-file
+on the remote machine.
+.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,
+.I ftp
+prints each command sent to the remote machine, preceded
+by the string \*(lq-->\*(rq.
+.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
+.IR local-file .
+If no directory is specified, the current working
+directory on the remote machine is used. If no local
+file is specified, output comes to the terminal.
+.TP
+.BI form " format"
+Set the file transfer
+.I form
+to
+.IR format .
+The default format is \*(lqfile\*(rq.
+.TP
+\fBget\fP \fIremote-file\fP [ \fIlocal-file\fP ]
+Retrieve the
+.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.
+The current settings for
+.IR type ,
+.IR form ,
+.IR mode ,
+and
+.I structure
+are used while transferring the file.
+.TP
+\fBhash\f
+Toggle hash-sign (``#'') printing for each data block
+transferred. The size of a data block is 1024 bytes.
+.TP
+.B glob
+Toggle file name globbing. With file name globbing enabled,
+each local file or pathname is processed for
+.IR csh (1)
+metacharacters. These characters include ``*?[]~{}''.
+Remote files specified in mutliple item commands, e.g.
+.IR mput ,
+are globbed by the remote server. With globbing disabled
+all files and pathnames are treated literally.
+.TP
+\fBhelp\fP [ \fIcommand\fP ]
+Print an informative message about the meaning of
+.IR command .
+If no argument is given,
+.I ftp
+prints a list of the known commands.
+.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.
+.TP
+\fBls\fP [ \fIremote-directory\fP ] [ \fIlocal-file\fP ]
+Print an abbreviated listing of the contents of a
+directory on the remote machine. If
+.I remote-directory
+is left unspecified, the current working directory
+is used. If no local file is specified, the output
+is sent to the terminal.
+.TP
+\fBmdelete\fP \fIremote-files\fP
+Delete the specified files on the remote machine. If globbing
+is enabled, the specification of remote files will first be
+expanded using
+.IR ls .
+.TP
+\fBmdir\fP \fIremote-files\fP \fIlocal-file\fP
+Obtain a directory listing of multiple files on the remote
+machine and place the result in
+.IR local-file .
+.TP
+\fBmget\fP \fIremote-files\fP
+Retrieve the specified files from the remote machine and
+place them in the current local directory. If globbing
+is enabled, the specification of remote files will first be
+expanding using
+.IR ls .
+.TP
+\fBmkdir\fP \fIdirectory-name\fP
+Make a directory on the remote machine.
+.TP
+\fBmls\fP \fIremote-files\fP \fIlocal-file\fP
+Obtain an abbreviated listing of multiple files on the remote
+machine and place the result in
+.IR local-file .
+.TP
+\fBmode\fP [ \fImode-name\fP ]
+Set the file transfer
+.I mode
+to
+.IR mode-name .
+The default mode is \*(lqstream\*(rq mode.
+.TP
+\fBmput\fP \fIlocal-files\fP
+Transfer multiple local files from the current local directory
+to the current working directory on the remote machine.
+.TP
+\fBopen\fP \fIhost\fP [ \fIport\fP ]
+Establish a connection to the specified
+.I host
+FTP server. An optional port number may be supplied,
+in which case,
+.I ftp
+will attempt to contact an FTP server at that port.
+If the
+.I auto-login
+option is on (default),
+.I ftp
+will also attempt to automatically log the user in to
+the FTP server (see below).
+.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), any
+.I mget
+or
+.I mput
+will transfer all files.
+.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
+in naming the remote file. File transfer uses the
+current settings for
+.IR type ,
+.IR format ,
+.IR mode ,
+and
+.IR structure .
+.TP
+.B pwd
+Print the name of the current working directory on the remote
+machine.
+.TP
+.B quit
+A synonym for bye.
+.TP
+.BI quote " arg1 arg2 ..."
+The arguments specified are sent, verbatim, to the remote FTP
+server. A single FTP reply code is expected in return.
+.TP
+\fBrecv\fP \fIremote-file\fP [ \fIlocal-file\fP ]
+A synonym for get.
+.TP
+\fBremotehelp\fP [ \fIcommand-name\fP ]
+Request help from the remote FTP server. If a
+.I command-name
+is specified it is supplied to the server as well.
+.TP
+\fBrename\fP [ \fIfrom\fP ] [ \fIto\fP ]
+Rename the file
+.I from
+on the remote machine, to the file
+.IR to .
+.TP
+.BI rmdir " directory-name"
+Delete a directory on the remote machine.
+.TP
+\fBsend\fP \fIlocal-file\fP [ \fIremote-file\fP ]
+A synonym for put.
+.TP
+.B sendport
+Toggle the use of PORT commands. By default,
+.I ftp
+will attempt to use a PORT command when establishing
+a connection for each data transfer. If the PORT
+command fails,
+.I ftp
+will use the default data port. When the use of PORT
+commands is disabled, no attempt will be made to use
+PORT commands for each data transfer. This is useful
+for certain FTP implementations which do ignore PORT
+commands but, incorrectly, indicate they've been accepted.
+.TP
+.B status
+Show the current status of
+.IR ftp .
+.TP
+\fBstruct\fP [ \fIstruct-name\fP ]
+Set the file transfer
+.I structure
+to
+.IR struct-name .
+By default \*(lqstream\*(rq structure is used.
+.TP
+.B tenex
+Set the file transfer type to that needed to
+talk to TENEX machines.
+.TP
+.B trace
+Toggle packet tracing.
+.TP
+\fBtype\fP [ \fItype-name\fP ]
+Set the file transfer
+.I type
+to
+.IR type-name .
+If no type is specified, the current type
+is printed. The default type is network ASCII.
+.TP
+\fBuser\fP \fIuser-name\fP [ \fIpassword\fP ] [ \fIaccount\fP ]
+Identify yourself to the remote FTP server. If the
+password is not specified and the server requires it,
+.I ftp
+will prompt the user for it (after disabling local echo).
+If an account field is not specified, and the FTP server
+requires it, the user will be prompted for it. Unless
+.I ftp
+is invoked with \*(lqauto-login\*(rq disabled, this
+process is done automatically on initial connection to
+the FTP server.
+.TP
+.B verbose
+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.
+.TP
+\fB?\fP [ \fIcommand\fP ]
+A synonym for help.
+.PP
+Command arguments which have embedded spaces may be quoted with
+quote (") marks.
+.SH "FILE NAMING CONVENTIONS"
+Files specified as arguments to
+.I ftp
+commands are processed according to the following rules.
+.TP
+1)
+If the file name \*(lq\-\*(rq is specified, the
+.B stdin
+(for reading) or
+.B stdout
+(for writing) is used.
+.TP
+2)
+If the first character of the file name is \*(lq|\*(rq, the
+remainder of the argument is interpreted as a shell command.
+.I Ftp
+then forks a shell, using
+.IR 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.
+.TP
+3)
+Failing the above checks, if ``globbing'' is enabled,
+local file names are expanded
+according to the rules used in the
+.IR csh (1);
+c.f. the
+.I glob
+command.
+.SH "FILE TRANSFER PARAMETERS"
+The FTP specification specifies many parameters which may
+affect a file transfer. The
+.I type
+may be one of \*(lqascii\*(rq, \*(lqimage\*(rq (binary),
+\*(lqebcdic\*(rq, and \*(lqlocal byte size\*(rq (for PDP-10's
+and PDP-20's mostly).
+.I Ftp
+supports the ascii and image types of file transfer.
+.PP
+.I Ftp
+supports only the default values for the remaining
+file transfer parameters:
+.IR mode ,
+.IR form ,
+and
+.IR struct .
+.SH OPTIONS
+Options may be specified at the command line, or to the
+command interpreter.
+.PP
+The
+.B \-v
+(verbose on) option forces
+.I ftp
+to show all responses from the remote server, as well
+as report on data transfer statistics.
+.PP
+The
+.B \-n
+option restrains
+.I ftp
+from attempting \*(lqauto-login\*(rq upon initial connection.
+If auto-login is enabled,
+.I ftp
+will check the
+.I .netrc
+file in the user's home directory for an entry describing
+an account on the remote machine. If no entry exists,
+.I ftp
+will use the login name on the local machine as the user
+identity on the remote machine, and prompt for a password
+and, optionally, an account with which to login.
+.PP
+The
+.B \-i
+option turns off interactive prompting during
+mutliple file transfers.
+.PP
+The
+.B \-d
+option enables debugging.
+.PP
+The
+.B \-g
+option disables file name globbing.
+.SH BUGS
+Many FTP server implementation do not support the experimental
+operations such as print working directory. Aborting a file
+transfer does not work right; if one attempts this the local
+.I ftp
+will likely have to be killed by hand.