4.1cBSD/usr/man/man1/ftp.1c

.TH FTP 1 1/15/83
.UC 4
.SH NAME
ftp \- file transfer program
.SH SYNOPSIS
.B ftp
[ 
.B \-v
] [
.B \-d
] [
.B \-i
] [
.B \-n
] [
.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
.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
\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
\fBmode\fP [ \fImode-name\fP ]
Set the file transfer
.I mode
to
.IR mode-name .
The default mode is \*(lqstream\*(rq mode.
.TP
\fBmkdir\fP \fIdirectory-name\fP
Make a 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 mget or 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 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 imbedded 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 specifed, 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, local file names are expanded
according to the rules used in the 
.IR csh (1).
(This is not enabled as multiple file transfers
are currently not supported.)
.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 on interactive prompting during
mutliple file transfers (unimplemented).
.PP
The
.B \-d
option enables debugging.
.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.