FTP


The following page is an excerpt from:
EFF's (Extended) Guide to the Internet Version 2.3 (September 1994)
Copyright (C) 1994 The Electronic Frontier Foundation
1001 G Street NW, Suite 950 E, Washington DC 20001 USA
Voice: +1 202 347 5400, Fax: +1 202 393 5509, BBS: +1 202 638 6120
FidoNet: 1:109/1108, Internet: ask@eff.org

Tons of Files

Hundreds of systems connected to Internet have file libraries, or archives, accessible to the public. Much of this consists of free or low- cost shareware programs for virtually every make of computer. If you want a different communications program for your IBM, or feel like playing a new game on your Amiga, you'll be able to get it from the Net.

But there are also libraries of documents as well. If you want a copy of a recent U.S. Supreme Court decision, you can find it on the Net. Copies of historical documents, from the Magna Carta to the Declaration of Independence are also yours for the asking, along with a translation of a telegram from Lenin ordering the execution of rebellious peasants. You can also find song lyrics, poems, even summaries of every "Lost in Space" episode ever made. You can also find extensive files detailing everything you could ever possibly want to know about the Net itself. First you'll see how to get these files; then we'll show you where they're kept.

The commonest way to get these files is through the file transfer protocol, or ftp. As with telnet, not all systems that connect to the Net have access to ftp. However, if your system is one of these, you'll be able to get many of these files through e-mail.

Starting ftp is as easy as using telnet. At your host system's command line, type

ftp site.name

and hit enter, where "site.name" is the address of the ftp site you want to reach. One major difference between telnet and ftp is that it is considered bad form to connect to most ftp sites during their business hours (generally 6 a.m. to 6 p.m. local time). This is because transferring files across the network takes up considerable computing power, which during the day is likely to be needed for whatever the computer's main function is. There are some ftp sites that are accessible to the public 24 hours a day, though.

[section on Archie deleted]

Getting the Files

Assuming your host site does have ftp, you connect in a similar fashion to telnet, by typing:

ftp sumex-aim.stanford.edu

(or the name of whichever site you want to reach). Hit enter. If the connection works, you'll see this:

Connected to sumex-aim.stanford.edu.
220 SUMEX-AIM FTP server (Version 4.196 Mon Jan 13 13:52:23 PST 1992) ready.
Name (sumex-aim.stanford.edu:adamg):

If nothing happens after a minute or so, hit control-C to return to your host system's command line. But if it has worked, type

anonymous

and hit enter. You'll see a lot of references on the Net to "anonymous ftp." This is how it gets its name -- you don't really have to tell the library site what your name is. The reason is that these sites are set up so that anybody can gain access to certain public files, while letting people with accounts on the sites to log on and access their own personal files. Next, you'll be asked for your password. As a password, use your e-mail address. This will then come up:

230 Guest connection accepted. Restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Now type

ls -l

and hit enter. You'll see something awful like this:

200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 2636
-rw-rw-r--  1 0        31           4444 Mar  3 11:34 README.POSTING
dr-xr-xr-x  2 0        1             512 Nov  8 11:06 bin
-rw-r--r--  1 0        0        11030960 Apr  2 14:06 core
dr--r--r--  2 0        1             512 Nov  8 11:06 etc
drwxrwsr-x  5 13       22            512 Mar 19 12:27 imap
drwxr-xr-x 25 1016     31            512 Apr  4 02:15 info-mac
drwxr-x--  2 0        31           1024 Apr  5 15:38 pid
drwxrwsr-x 13 0        20           1024 Mar 27 14:03 pub
drwxr-xr-x  2 1077     20            512 Feb  6  1989 tmycin
226 Transfer complete.
ftp>

Ack! Let's decipher this Rosetta Stone.

First, ls is the ftp command for displaying a directory (you can actually use dir as well, but if you're used to MS-DOS, this could lead to confusion when you try to use dir on your host system, where it won't work, so it's probably better to just remember to always use ls for a directory while online).

The very first letter on each line tells you whether the listing is for a directory or a file. If the first letter is a `d', or an `l', it's a directory. Otherwise, it's a file.

The rest of that weird set of letters and dashes consist of "flags" that tell the ftp site who can look at, change or delete the file. You can safely ignore it. You can also ignore the rest of the line until you get to the second number, the one just before the date. This tells you how large the file is, in bytes. If the line is for a directory, the number gives you a rough indication of how many items are in that directory -- a directory listing of 512 bytes is relatively small. Next comes the date the file or directory was uploaded, followed (finally!) by its name.

Notice the `README.POSTING' file up at the top of the directory. Most archive sites have a "read me" document, which usually contains some basic information about the site, its resources and how to use them. Let's get this file, both for the information in it and to see how to transfer files from there to here. At the `ftp>' prompt, type

get README.POSTING

and hit enter. Note that ftp sites are no different from Unix sites in general: they are case-sensitive. You'll see something like this:

200 PORT command successful.
150 Opening BINARY mode data connection for README.POSTING (4444 bytes).
226 Transfer complete. 4444 bytes received in 1.177 seconds (3.8 Kbytes/s)

And that's it! The file is now located in your home directory on your host system, from which you can now download it to your own computer. The simple `get' command is the key to transferring a file from an archive site to your host system.

If you want to download more than one file at a time (say a series of documents), use `mget' instead of `get'; for example:

mget *.txt

This will transfer copies of every file ending with `.txt' in the given directory. Before each file is copied, you'll be asked if you're sure you want it. Despite this, mget could still save you considerable time -- you won't have to type in every single file name. If you want to save even more time, and are sure you really want all of the given files, type `prompt' before you do the mget command. This will turn off the prompt, and all the files will be zapped right into your home directory.

There is one other command to keep in mind. If you want to get a copy of a computer program, type

bin

and hit enter. This tells the ftp site and your host site that you are sending a binary file, i.e., a program. Most ftp sites now use binary format as a default, but it's a good idea to do this in case you've connected to one of the few that doesn't.

To switch to a directory, type

cd directory-name

(substituting the name of the directory you want to access) and hit enter. Type

ls

and hit enter to get the file listing for that particular directory. To move back up the directory tree, type

cd ..

(note the space between the d and the first period) and hit enter. Or you could type

cdup

and hit enter. Keep doing this until you get to the directory of interest. Alternately, if you already know the directory path of the file you want (from our friend archie), after you connect, you could simply type

get directory/subdirectory/filename

On many sites, files meant for public consumption are in the pub or public directory; sometimes you'll see an info directory.

Almost every site has a bin directory, which at first glance sounds like a bin in which interesting stuff might be dumped. But it actually stands for "binary" and is simply a place for the system administrator to store the programs that run the ftp system. Lost+found is another directory that looks interesting but actually never has anything of public interest in them.

Before, you saw how to use archie. From our example, you can see that some system administrators go a little berserk when naming files. Fortunately, there's a way for you to rename the file as it's being transferred. Using our archie example, you'd type

get zterm-sys7-color-icons.hqx zterm.hqx

and hit enter. Instead of having to deal constantly with a file called `zterm-sys7-color-icons. hqx', you'll now have one called, simply, `zterm.hqx'.

Those last three letters bring up something else: Many program files are compressed to save on space and transmission time. In order to actually use them, you'll have to use an un-compress program on them first.


St. Louis SPJ Surf the Net with SPJ
Last update 26 February 1996
http://www.ccrc.wustl.edu/spj/surf/ftp.html
Prepared by Lorrie Faith Cranor (lorracks@cs.wustl.edu) and Staci D. Kramer (sdk@cris.com)