Notes on File Transfer

Getting the file from your computer to the other one.

If you're next to it, put it on a USB drive, take it out, walk over, and copy it over.
(by the way, DO THIS ANYWAY with your important stuff. Thanks)

But how do we do this over the internet? There are a LOT of ways. No really, a lot. Lets start at the beginning:

Well, lets start with Linux/Unix: Remember, the whole point of Unix is that doing stuff locally is the same as doing stuff not locally: So we can first think about these two "programs" -- which are simple commands:

CP - which means Copy. Let's be a little more precise here; think PHOTOCOPY (as opposed to perfect clone) i.e., make a copy of the file with identical contents, but that is USEABLE by whoever's got it.
RSYNC - which means SYNCHRONIZE -- this is used for backups and such, i.e. what it creates is a PERFECT CLONE.

(the differences between the above have nothing to do with the contents of the file, but with "permissions" and such)

But, over in mostly windowsland: Hey, maybe we develop a protocol for File Transfer. Hmm, what might we call it?

FTP. File Transfer Protocol (originally, a bunch of commands + no protection)

Here's something else we need to consider: Protection. Now, you can either "bake it in" or just "stack" one on the other. So let's talk about another important thing: SSH

Let's start talking about SSH by talking about something else -- Telnet. Simple program, you connect to the other computer and start giving it shell commands, again, no protection.

Okay, but now we need protection. We need a Shell that is Secure.

Secure SHell -- SSH. Primarily for commands -- BUT
Like with all these, instead of "typing the commands" you can pipe them through -- SO, you can use SSH not just for typing commands, but as a sort of "armored truck" or "security" system you can pipe other commands through. SO we get things like

and SFTP - SSH + FTP

Now, to further confuse things: Today, sometimes you'll see SSH for just File Transfer. That's fine, will usually work and act just like FTP.

Finally -- WebDAV. Basically the same as above, though tailored for Web Development.


As this implies, this means there are a number of ways to actually transfer the files, you could:

(Or, write a little script to issue the commands. This is pretty uncommon, but it is what I do for the class site)

Backlinks: FSU Courses:LIS5362