FTP Details: Transferring Files Between Computers with FTP or sFTP
This document explains how to transfer files between computers connected via
the File Transfer Protocol (FTP) software. The transfer must be done while FTP or sFTP
is running on the computer you are working on, and the "remote" computer you
are using must also have FTP or sFTP available. Please note that the exact messages
you receive depends on what version of FTP you are using, although they will
be similar to those shown here. There is more information on FTP and sFTP in FTP
What is Needed to Use FTP or sFTP
Files can be transferred between a pair of machines with FTP or sFTP software, given
- The machine you are using, the "local host machine", is running FTP or sFTP and is
attached to the Internet computer network.
- The machine you are attaching to, the "remote host machine", is running
FTP or sFTP and is attached to the Internet computer network.
- You know the Internet node name, also known as domain
name (which generally has the form system.unit.institution.domain)
, of the remote host machine. You may also use the remote host machine's Internet
IP address (which has the form nnn.nnn.nnn.nnn, where nnn is a number
between 0 and 255), but please be aware that this can and does change from
time to time.
- You have an active account on both the local and remote host machines,
and you know the accounts' password (where relevant). (There are some "server"
type machines whose purpose is to distribute files to the public which run
"anonymous FTP" on which the logon id is "anonymous" and the password can
be anything, but usually they ask you to use your own userid. Anyone can use
Commands Used to Transfer Files
All the commands in the examples are given in lowercase. Most computer systems, including Unix, are case sensitive; these
case sensitive machines expect the FTP commands in lower case. Thus it
is wisest to enter all FTP commands in lower case. The only exception is
the names used to identify the files you are transferring, which should
be entered in whatever case is used (or is to be used) when that file is
listed in your directory. See Warning on the case of
FTP commands and Warning on the case of file names.
Examples of the commands used and the responses generated by the commands
are given in this section. Please note that on each system, the syntax
of the commands might differ. Read the documentation for the system you
will be using, or contact the remote site's computer center for more information.
To perform a file transfer, use the following procedure:
- Logon to your "local host machine" (if necessary).
- Enter the command:
on your local machine. The machine_name is the Internet node
name of the "remote host machine" you are contacting, and has the general format:
For example, the Internet node name of tigger is:
You will receive a response similar to:
220-FTPSERVE at machine_name, hh:mm:ss CST day mm/dd/yy
220 (Possibly more information about the system...)
- At the prompt, enter your logon id on the remote host machine. After you
enter your logon id the system will respond:
331 Send password, please
- Enter the password for your account on the remote machine and the system
230 user_name logged in; working directory directory_name
where "user_name" is the logon id you used to logon to the remote machine, and
"directory_name" is your default directory on the remote machine. Please note that your profile
file is not executed when you connect to most machines using FTP.
- To see a list of available FTP commands, enter the command at the FTP prompt:
To get more information about an individual FTP command enter at the FTP prompt:
where cmdname is the name of the FTP command.
- To see a list of files available in the working directory on the remote
machine, enter the command:
The results will look something like this:
200 Port request OK
125 List started OK
250 List completed successfully
...List of files in your working directory appears here...
- To list the files on your local machine, there will be either a command
or simply a character that you can type that will allow you to temporarily
return from FTP to the operating system of your local machine. Check your
manual for this key/command for your software. Once you are back in the local
machine, enter the command you would normally use to get a list of your files.
For example, if you are using FTP from a PC running DOS, you would enter the
DOS dir command at the DOS prompt, or if you are using FTP
on on a Unix machine, you would enter the Unix ls command.
- By default, FTP assumes the file being transferred is an ASCII file. If
the file is not an ASCII file, for example, if it is an executable file, you
need to tell FTP that the transfer is not ASCII. To do this, enter the command
at the FTP prompt:
(or, depending on the version of FTP you're using, the command used might be
octet or image . Check the version of FTP on
your local machine for the appropriate command.) This command will tell both
machines that they will be doing a binary file transfer. These new settings
will be in effect until they are reset back to ASCII. To do so, at the FTP prompt,
enter the command:
Note that IBM mainframes use EBCDIC and not ASCII. There is normally an ebcdic
command available. If not, you may use ascii .
- When you issue the FTP command to connect to a remote host machine, a default
working directory on the remote host machine is set. The FTP commands you
enter affect this directory. To change the remote working directory, issue
the command at the FTP prompt:
where new_directory is the name of the directory on the remote
machine you wish to use. Make sure that the new_directory you enter
follows the proper directory name conventions for the system you are connected
- To transfer a file from your machine to the remote machine, use the put
command at the FTP prompt. For example:
put localfile remotefile
will send the file on the local host machine with the name localfile
to the remote machine with the name remotefile. When the file's
name consists of two or more parts separated by spaces, such as a CMS file identifier,
the parts of the name should be separated by periods; for example:
(See also Duplicate file names and Selecting
record format and record length for CMS.)
- When transferring files from the remote machine to the local machine, files
are saved in your current directory. To change the directory on the local
machine, enter the command, at the FTP prompt:
where local_directory_name is the name of the directory on your
local machine where you want the files stored. Use the same rules and formats
for the local_directory_name as described for the cd
- To transfer a file from the remote machine to your local machine, use the
get command at the FTP prompt:
get remotefile localfile
where remotefile and localfile, which are, respectively,
are the name the file has on the remote machine and the name the file will have
on the local machine. (See also Duplicate file names.)
- FTP allows for multiple file transfers using pattern matching by using
the mget and mput commands.
would take all the files with the extension or the filetype, of "com"
and transfer them to the local machine, while
would take all the files with the extension or the filetype, of "com"
and send them to the remote machine. In both cases, the file's name on the destination
machine will be built from the file's original name.
For both mput and mget, you will be asked to respond Y or N for each file
that matches the pattern. If you do not want to go through this prompting
process, you can disable PROMPT by entering the command at the FTP prompt:
Check your version of FTP for the proper command. (See also Duplicate
- To close the connection to the remote machine, enter the command at the
The quit command actually will do two things. First, it will
issue a close command to close the session between your machine
and the remote machine. The second command executed is quit.
Therefore, if you wish to open another connection to a machine without leaving
FTP, you can enter the command at the FTP prompt:
When your session is closed, you can then open a new one. To do this, you may
use the command:
Check your version of FTP for the proper command.
Possible Error Messages
When you attempt to connect to a remote host, the connection may not be
completed, even if you have used the correct host name. The following are
some common messages you might see, along with an explanation of what they
- Unknown host:
- The hostname you specified was not found, or does not exist. Check the
spelling of the hostname and try again.
- Foreign host did not respond within OPEN timeout:
- Either the specified host does not support FTP, or the host is busy (or
unavailable) and could not open a FTP connection. If you know that the host
does have FTP services, try again at a later time. If you are not sure, you
may want to try again and, if you still can not connect, you may want to contact
the remote site for additional information.
Some Things to Keep in Mind When Using FTP
- Warning on the case of FTP commands.
- All the commands in the examples in this document are given in lowercase.
Many computer systems, including all Unix machines, are case sensitive; these
case sensitive machines expect the commands in lower case. Thus it is wisest
to enter all FTP commands in lower case.
Warning on the case of file names.
- The only exception to the advice to always use lower case for FTP commands
are for the names used to identify the files you are transferring. To be safe,
always enter the file names exactly as they are shown in the FTP dir command,
i.e. if they are shown as lower, upper, or mixed case, type them exactly as
they are listed.
You have only one "working directory" available on the remote host machine.
- When you use the FTP command cd, it releases the previous
working directory before attaching the new one.
Access mode for working directory.
- Initially, the working directory on the remote machine may be attached in
read/only mode, but is automatically changed to write when/if it is necessary.
Binary vs ASCII files.
- There are two general types of files, text and binary. A text file is a
straightforward file. If you look at the contents of a text file, you will
be able to distinguish the characters and/or read it. Text files are also
called ASCII files. A binary file will not make any sense if you try to look
at it; it consists mostly of unprintable characters. Different applications
call for different formats. Be sure you know which type of file is most
appropriate for your needs before making the transfer. Archived or
compressed files and all executable files require binary transfer. PostScript
output files generally do not.
Duplicate file names:
- Most versions of FTP will replace an existing copy of the file you are transferring
if one exists without warning or asking if it is ok to do so. So take care.
Or enter the FTP command: sunique
which instucts FTP to generate a unique file identifier for any
file being transferred whose name duplicates an existing file. When such a
name conflict exists, you will be notified of the name actually used for the
transferred copy. sunique is a toggle; enter it again to turn
the "store unique" feature off.