Detailed FTP Guide
Contributed by Jeff Pfohl
<PFOHL@nucmar.physics.fsu.edu>
As promised here is the step by step procedure for walking around in the archive site at ftp.cco.caltech.edu. I do not guarantee that it will work for everyone since each system has its own little quirks. Please direct all comments to me: PFOHL@nucmar.physics.fsu.edu. I do not intend to cover all the directories in the archive site for this example. I will purposely walk through several directories to give you the basic feel for it. All you need to do is change the directory names and file names to use the rest of the archive. I begin my telling a little about the archive, defining terms and defining commands. This will allow us to go through an example as you would at the site. If you do not understand what we did refer back to the command list. At times I will reiterate what the command has done to help give you a better feel for what we are doing. Yes this is, at times, redundant but it is a good way to help solidify the commands in your minds. This has proven to be useful in the past so bear with me at the beginning and it will all be clear at the end (I hope). This example is a little long but purposely so in order to try to be comprehensive. One last comment about this example. You SHOULD be able to follow the example blindly treating the computer and its commands as a black box. You will only get to see and save the parts which we visit together but it is possible. I do NOT recommend following blindly since I personally like to understand everything I do but that's just me :). COMMENTS ABOUT THE ARCHIVE I will denote the prompt for the local site as "LOCAL>" The prompt for the archive/foreign site is "ftp>" ALL commands are CASE SENSITIVE!!!!!!! everything that is enclosed in ' ' is what is printed on your screen by the computer that I feel is relevant to future steps or to the step just completed. It is NOT everything that is shown on your screen as that will be too time consuming to type out. TERMS YOU WILL NEED When I say: = I mean: local site = the machine where you are foreign site = the archive site (caltech) fname = a file which you are interested in or want to create dname = a directory you are interested in or want to create COMMANDS YOU WILL NEED lcd dname = local directory change (changes directory at the local site to dname) lcd .. = change to the previous local site directory cd .. = change to the previous foreign sire directory (ie go back one directory) lcd = takes you to the home directory at the local site lcd dname = local directory change (changes directories at the foreign site to dname) cd dname = foreign directory change (changes directories at the foreign site to dname) The following 3 commands: ls, ls -F, and dir have the following properties: If your prompt is 'ftp>' then you get the list of files at the foreign site'. If your prompt is 'LOCAL>' then you get the list of files at the local site. ls = listing of contents in the current directory ls -F = listing of contents in the current directory indicating which are directories with a / dir = a listing of contents that also SHOWS THE SIZE of each entry. Directories are denoted by a d on the far left. Useful command if your local site has limited space. get = command used to transfer files from the foreign site to the local site mget * = command used to transfer multiple files of the form "fname" from the current foreign directory to the current local directory mget *.* = command used to transfer multiple files of the form "fname.something" from the current foreign directory to the current local directory. This will NOT copy directory structures, ONLY THE FILES. You must first create the directories in your account (the local site) BEFORE you ftp. prompt = during mget commands your machine may or may not ask you whether you want each file. This command toggles this feature on and off for your convenience. I'll explain more when we get to mget in our example. get fname |more = allows you to read the file before deciding to get it. You can page down by hitting the space bar. You cannot page up! mkdir dname = make a directory at the local site called dname. You must use this command only at a LOCAL> prompt since you are not authorized to alter the archive site. pwd = ask the computer to tell you what directory you are in at the foreign site when prompt is "ftp>" and at the local site when the prompt is "LOCAL>" quit = used at the ftp> prompt to end the session and return you to your local site [ctrl] xc = allows you to stop the reading process of a "get fname |more" or to stop a "mget *" or "mget *.*" command. The [ctrl] key must be held down while x and c are typed!!! You do NOT need a prompt to use this command!! WARNING: Sometimes this command will hang your local machine up. Other commands you might also try if this happens are: "[ctrl] c" and "q" although "q" will not stop the mget processes. START At the local site you need to create a directory where you will save the archive. I'll call it Fish and save it in my home directory (ie the directory you are in when you first log in): /home . LOCAL> mkdir Fish LOCAL> cd Fish I recommend that you walk through the archive site first and see the directories that are there. Then quit the archive and at the local site create those directories in the Fish directory. Only then go back to the archive site and start saving files. I personally like to open another window at the local site and make local directories in that window so I never need to leave the archive site but will not do so for this example since not everyone has windows capabilities. For this example we will create 2 more directories for convenience: Fresh and Salt which are directories in the Fish directory. LOCAL> mkdir Fresh LOCAL> mkdir Salt Now connect to the archive site LOCAL> ftp ftp.cco.caltech.edu 'Name (site information):' anonymous 'Password:" your email address ftp> cd pub/aquaria ftp> dir Note that there is only one file in this directory. All the rest are other directories. In deference to those who actually wrote the archive I will now have you read the README file. It is also a good place to start. (I guess that is why they want us to read it) ftp> get README |more Recall that you page down using the space bar and CANNOT page up! ftp> ls Following the advice of the README file. ftp> cd Info ftp> pwd '"/pub/aquaria/Info" is current directory' ftp> dir ftp> get contents |more ftp> get contents This gives you the directory tree of the archive so you can see how it is set up. This is when I would leave the archive and set up more directories at the local site according to this directory tree. We will not do this but rather stick to our simple directory hierarchy with Salt and Fresh being subdirectories of Fish. (No need to make this more complicated that it already is. Or any longer:) ) ftp> cd .. ftp> pwd '"/pub/aquaria" is current directory' Note that the /Info is now gone from our previous pwd command. The cd .. command has thus done its job and taken us back one directory. ftp>cd reefs We want to save saltwater stuff in the Salt directory. ftp>lcd Salt 'Local directory now /home/Fish/Salt' ftp>ls -F In this directory we note that other directories are designated by capitalizing the first letter while files are all lowercase. This is a nice feature and occurs elsewhere in the archive but unfortunately is not a hard and fast rule. Let's read and then get a file. ftp> get liverock |more ftp> get liverock Long pause while it transfers the file from the remote to local site. Let's say that we want to get all the files and then read them later. This is nice since it does not tie up the archive and we can read at our leisure. Assuming your local system prompts you for every file with an mget command you'll see: ftp> mget * 'mget berlin?' y 'mget calcium?' n This continues until you go through all the files in a yes or no format. To stop in the middle do the following: 'mget calendar?' [ctrl] xc 'continue with mget?" n Remember to hold down the control key while typing BOTH x and c!! Also remember the warning about this command stated previously! If the filename is one part like "berlin" then we use "mget *" but if the filename is two parts like "fname.something" then we need to emulate the syntax and use "mget *.*". One last note is that some systems do not prompt you automatically in the yes/no format but instead just transfer ALL the files in that directory to your local directory. If this is the case AND you want to be prompted before transferring files (you only want a few of them) then simply type the word "prompt" (no quotes) followed by a [return] at the 'ftp>' prompt BEFORE doing an mget. Finally the "prompt" command is an on/off toggle so if you are getting prompted and would prefer not to be prompted then simply type the word "prompt" at 'ftp>' followed by a [return]. Let's check out the Mailorder directory ftp> cd Mailorder ftp> pwd '"/pub/aquaria/reefs/Mailorder is current directory' ftp> ls ftp> get chemicals |more We decide not to get this file arbitrarily. We thus go back to the reefs directory. ftp> cd .. We can now explore one of the other directories: Corals, Parameters, Reproduction, Systems or go back to the aquaria directory. We choose to go back to the aquaria directory. ftp> cd .. ftp> pwd '"pub/aquaria" is current directory' Where is the Reefkeepers FAQ you ask? ftp> ls -F ftp> cd FAQfiles ftp> ls -F ftp> cd Reefkeepers ftp> ls There it is. Since it is known to be long let's just get it from the archive to our local machine and read it later. We get the entire thing as one file. You could get each part separately by replacing ".all" with ".part 1" and then again with ".part2" etc. or use the command "mget *.*" since the filename is in two parts. ftp> get reefkeepersFAQ.all We now want to look at some freshwater stuff just to be fair to as many people as possible. (and more importantly to learn new commands) ftp> pwd '"/pub/aquaria/FAQfiles/Reefkeepers" is current directory ftp> cd /pub/aquaria Note that since we knew what directory we wanted (ie we were not just looking around to see what was there) we just went directly to that directory. We could also have done the following with the same effect: ftp> cd .. ftp> cd .. since this brings us back two directories. However our local site directory is /home/Fish/Salt. We definitely want to save freshwater stuff in the Fresh directory. We thus change directories at our local site. ftp> lcd .. 'Local directory now /home/Fish' ftp> lcd Fresh 'Local directory now /home/Fish/Fresh' ftp> cd fresh ftp> ls ftp> get waterchange |more We can follow the same procedure as we did in the saltwater stuff to get and read files. Let's check out the directory: "Systems" which we know to exist from our previous ls command. If you forgot, just type ls again at the ftp> prompt. ftp> cd Systems ftp> ls ftp> get boothSST |more A rather long file. We do not feel like reading it right now. In order to stop reading it type: [ctrl] xc We are interested in its contents however. Let's get the file for future reading. ftp> get boothSST Long pause as before. We are now done looking around the archive for this example. ftp> quit 'Goodbye' LOCAL> Let's look to make sure we got all the files we wanted. LOCAL> pwd '/home/Fish' Notice we are in the directory we started off in before we ftp'd. All the directory changes during the ftp session have not affected where we end up. You will ALWAYS be in the same directory in which you started the ftp session when you end the ftp session. LOCAL> ls -F We should see the file: "contents" and the two directories (indicated by a /) "Fresh" and "Salt". LOCAL> cd Salt LOCAL> ls We should see all the files we decided to get and put in the Salt directory: liverock, berlin, reefkeepersFAQ.all. LOCAL> cd .. LOCAL> cd Fresh LOCAL> ls We should see the file boothSST. LOCAL> cd .. LOCAL> cd .. LOCAL> pwd '/home' WE NOW RETURN YOU TO YOUR REGULARLY SCHEDULED COMPUTER TASK!!
The official home site of the FAQ is http://faq.thekrib.com maintained by Erik Olson as part of the The Krib.