FTP(1C) — USER COMMANDS
NAME
ftp − file transfer program
SYNOPSIS
ftp [ −v ] [ −d ] [ −i ] [ −n ] [ −g ] [ −t ] [ host ]
DESCRIPTION
ftp is the user interface to the ARPANET standard File Transfer Protocol. ftp transfers files to and from a remote network site.
The client host with which ftp is to communicate may be specified on the command line. If this is done, ftp immediately attempts to establish a connection to an FTP server on that host; otherwise, ftp enters its command interpreter and awaits instructions from the user. When ftp is awaiting commands from the user, it displays the prompt “ftp>”.
OPTIONS
Options may be specified at the command line, or to the command interpreter.
−v show all responses from the remote server, as well as report on data transfer statistics. This is turned on by default if ftp is running interactively with its input coming from the user’s terminal.
−n do not attempt “auto-login” upon initial connection. If auto-login is enabled, ftp checks the .netrc file in the user’s home directory for an entry describing an account on the remote machine. If no entry exists, ftp uses the login name on the local machine as the user identity on the remote machine, and prompts for a password and, optionally, an account with which to login.
−i turn off interactive prompting during multiple file transfers.
−g disable filename "globbing."
−d enable debugging.
−t enable packet tracing (unimplemented).
COMMANDS
! [ command ]
Run command as a shell command on the local machine. If no command is given, invoke an interactive shell.
append local-file [ remote-file ]
Append a local file to a file on the remote machine. If remote-file is left unspecified, the local file name is used in naming the remote file. File transfer uses the current settings for “representation type”, “file structure”, and “transfer mode”.
ascii Set the “representation type” to “network ASCII”. This is the default type.
bell Arrange that a bell be sounded after each file transfer command is completed.
binary
Set the “representation type” to “image”.
bye Terminate the FTP session with the remote server and exit ftp.
cd remote-directory
Change the working directory on the remote machine to remote-directory.
close Terminate the FTP session with the remote server, and return to the command interpreter.
delete remote-file
Delete the file remote-file on the remote machine.
debug [ debug-value ]
Toggle debugging mode. If an optional debug-value is specified it is used to set the debugging level. When debugging is on, ftp prints each command sent to the remote machine, preceded by the string “-->”.
dir [ remote-directory ] [ local-file ]
Print a listing of the directory contents in the directory, remote-directory, and, optionally, placing the output in local-file. If no directory is specified, the current working directory on the remote machine is used. If no local file is specified, or local-file is −, output comes to the terminal.
form [ format-name ]
Set the carriage control format subtype of the “representation type” to format-name. The only valid format-name is non-print, which corresponds to the default “non-print” subtype.
get remote-file [ local-file ]
Retrieve the 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 “representation type”, “file structure”, and “transfer mode” are used while transferring the file.
glob Toggle filename expansion, or "globbing", for mdelete, mget and mput. If globbing is turned off, filenames are taken literally.
Globbing for mput is done as in csh(1). For mdelete and 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 radically different from expansion of the name of an ordinary file: the exact result depends on the remote operating system and FTP server, and can be previewed by doing ‘mls remote-files −’.
mget and mput are not meant to transfer entire directory subtrees of files. You can do this by transferring a tar(1) archive of the subtree (using a “representation type” of “image” as set by the binary command).
hash Toggle hash-sign (#) printing for each data block transferred. The size of a data block is 1024 bytes.
help [ command ]
Print an informative message about the meaning of command. If no argument is given, ftp prints a list of the known commands.
lcd [ directory ]
Change the working directory on the local machine. If no directory is specified, the user’s home directory is used.
ls [ remote-directory ] [ local-file ]
Print an abbreviated listing of the contents of a directory on the remote machine. If remote-directory is left unspecified, the current working directory is used. If no local file is specified, or if local-file is −, the output is sent to the terminal.
mdelete [ remote-files ]
Delete the remote-files on the remote machine.
mdir remote-files local-file
Like dir, except multiple remote files may be specified.
mget remote-files
Expand the remote-files on the remote machine and do a get for each file name thus produced. See glob for details on the filename expansion. Files are transferred into the local working directory, which can be changed with ‘lcd directory’; new local directories can be created with ‘! mkdir directory’.
mkdir directory-name
Make a directory on the remote machine.
mls remote-files local-file
Like ls, except multiple remote files may be specified.
mode [ mode-name ]
Set the “transfer mode” to mode-name. The only valid mode-name is stream, which corresponds to the default “stream” mode.
mput local-files
Expand wild cards in the list of local files given as arguments and do a put for each file in the resulting list. See glob for details of filename expansion.
open host [ port ]
Establish a connection to the specified host FTP server. An optional port number may be supplied, in which case, ftp will attempt to contact an FTP server at that port. If the auto-login option is on (default), ftp will also attempt to automatically log the user in to the FTP server (see below).
prompt
Toggle interactive prompting. Interactive prompting occurs during multiple file transfers to allow the user to selectively retrieve or store files. By default, prompting is turned on. If prompting is turned off, any mget or mput will transfer all files, and any mdelete will delete all files.
put local-file [ remote-file ]
Store a local file on the remote machine. If remote-file is left unspecified, the local file name is used in naming the remote file. File transfer uses the current settings for “representation type”, “file structure”, and “transfer mode”.
pwd Print the name of the current working directory on the remote machine.
quit A synonym for bye.
quote arg1 arg2 ...
Send the arguments specified, verbatim, to the remote FTP server. A single FTP reply code is expected in return.
recv remote-file [ local-file ]
A synonym for get.
remotehelp [ command-name ]
Request help from the remote FTP server. If a command-name is specified it is supplied to the server as well.
rename from to
Rename the file from on the remote machine to have the name to.
rmdir directory-name
Delete a directory on the remote machine.
send local-file [ remote-file ]
A synonym for put.
sendport
Toggle the use of PORT commands. By default, ftp will attempt to use a PORT command when establishing a connection for each data transfer. If the PORT command fails, 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 ignore PORT commands but incorrectly indicate they’ve been accepted.
status
Show the current status of ftp.
struct [ struct-name ]
Set the “file structure” to struct-name. The only valid struct-name is file, which corresponds to the default “file” structure.
tenex Set the “representation type” to that needed to talk to TENEX machines.
trace Toggle packet tracing (unimplemented).
type [ type-name ]
Set the “representation type” to type-name. The valid type-names are ascii for “network ASCII”, binary or image for “image”, and tenex for “local byte size” with a byte size of 8 (used to talk to TENEX machines). If no type is specified, the current type is printed. The default type is “network ASCII”.
user user-name [ password ] [ account ]
Identify yourself to the remote FTP server. If the password is not specified and the server requires it, 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 ftp is invoked with “auto-login” disabled, this process is done automatically on initial connection to the FTP server.
verbose
Toggle verbose mode. In verbose mode, all responses from the FTP server are displayed to the user. In addition, if verbose mode is on, when a file transfer completes, statistics regarding the efficiency of the transfer are reported. By default, verbose mode is on if ftp’s commands are coming from a terminal, and off otherwise.
? [ command ]
A synonym for help.
Command arguments which have embedded spaces may be quoted with quote (") marks.
If any command argument which is not indicated as being optional is not specified, ftp will prompt for that argument.
FILE NAMING CONVENTIONS
Local files specified as arguments to ftp commands are processed according to the following rules.
1) If the file name “-” is specified, the standard input (for reading) or standard output (for writing) is used.
2) If the first character of the file name is “|”, the remainder of the argument is interpreted as a shell command. ftp then forks a shell, using popen(3S) with the argument supplied, and reads (writes) from the standard output (standard input) of that shell. 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”.
3) Failing the above checks, if “globbing” is enabled, local file names are expanded according to the rules used in the csh(1); c.f. the glob command.
Note that remote file names are not processed, but are passed just as they are typed, except for the mdelete, mdir, mget, and mls commands, where they are expanded according to the rules of the remote host’s operating system, if any.
FILE TRANSFER PARAMETERS
The FTP specification specifies many parameters which may affect a file transfer.
The “representation type” may be one of “network ASCII”, “EBCDIC”, “image”, or “local byte size” with a specified byte size (for PDP-10’s and PDP-20’s mostly). The “network ASCII” and “EBCDIC” types have a further subtype which specifies whether vertical format control (newlines, form feeds, etc.) are to be passed through (“non-print”), provided in TELNET format (“TELNET format controls”), or provided in ASA (FORTRAN) (“carriage control (ASA)”) format. ftp supports the “network ASCII” (subtype “non-print” only) and “image” types, plus “local byte size” with a byte size of 8 for communicating with TENEX machines.
The “file structure” may be one of “file” (no record structure), “record”, or “page”. ftp supports only the default value, which is “file”.
The “transfer mode” may be one of “stream”, “block”, or “compressed”. ftp supports only the default value, which is “stream”.
SEE ALSO
BUGS
Many FTP server implementations do not support experimental operations such as print working directory. VAX sites running the BBN FTP server appear to ignore the PORT command while indicating complicity; this locks up all file transfers.
Sun Release 3.2 — Last change: 17 February 1986