The command line ftp downloads to whatever your current working directory is. When you first launch a shell (aka: start the terminal) your working directory is your home directory. You can determine what your current working directory is by typing "pwd" (Print Working Directory).
So, you can simply change to the download directory first, then run ftp. this is done with the "cd" command (see "man cd" for more info). The actual command should look something like this:
cd /Volumes/some_disk/downloads
pwd will then yield:
/Volumes/some_disk/downloads.
A couple of notes:
If you are changing to a directory within your home directory (a great example being "desktop") you can give cd what's known as a relative path name (as opposed to an absolute path name, like the one in the previous example). You can tell a relative pathname because it does not start with a "/". This tells the shell to start looking in the current directory, rather than at the top of the filesytem (aka the root of the file system, aka "/")
So, assuming you are starting out in your home directory, these two commands yield the same result:
cd /Users/home-dir/desktop/downloads
or
cd desktop/downloads
However, if you are in some other directory (not your home) then only the first one would work. The first one is absolute; it's a roadmap to that directory from anywhere on the system. The second is relative to your home directory.
The other thing to keep in mind is that the shell doesn't like spaces in the path, so if you have a folder like:
/Volumes/My Disk/Download Folder
and you try to type:
cd /Volumes/My Disk/Download Folder
it won't work. This is because the shell uses the space character to seperate different parts of the command. To make it work, you should preceed each space with a "\" (that's a back-slash). This is called "character escaping" and it tells the shell to treat the space as a literal space, and not as a seperator. (it's worth noting that other special characters like "*" also need to be escaped). So in our example of a path with spaces, the actual command is:
cd /Volumes/My\ Disk/Download\ Folder
Got all that? OK, there's one last thing. Let's say that you already started ftp from the wrong directory, or you want to download to several different directories, what then?
All the things I mentioned (cd, pwd, and character escaping) also work within the command line ftp. You probably already know this if you've been using ftp. What you may not know is that if you add a lower case "L" to the begining of those commands (ie: lpwd, lcd) it changes the meaning to "local" (so, local-cd, local-pwd, etc...). So you can still change your _local_ directory from within ftp, even if you forgot to do it before connecting. The lcd command within ftp works just like the cd command in the shell:
ftp> lcd /Volumes/My\ Disk/Download\ Folder
ftp> local directory is now: /Volumes/My Disk/Download Folder
(and of course, within ftp, plain old "cd" changes your directory on the _remote_ system).
That just about covers evrything you need to know. Just remember, the man pages are your friend. try typing:
man ftp
man ls
man cd
in the terminal.
Hope this helps...
-alex