The long-in-the-tooth file transfer protocol, appropriately named “ftp” is my least favorite way of moving files over the internet for a number of reasons. Occasionally, customers will ask that I make due with what I have, and so arises the need to support ftp-based workflows. I had used Mac GUI apps such as Interarchy and, more recently, Transmit, however, as well designed and pretty on the eyes, they add as much process overhead as they remove from the learning curve. My reflex is for the ftp command line app but that is a bare-bones approach. ncftp is a little better; but lftp is wonderful. Well supported, and supports mirroring from the command-line. lftp makes ftp reasonably viable for a workflow.
Here is an excellent overview of this utility.
Update: my processes “crashed” when lftp was uploading all my .svn files on reverse mirroring. After much searching, here’s the fix:
- Create an .lftprc file in your home directory, ~/.lftprc
- Add the following: set mirror:exclude-regex .svn/
- No more .svn uploading
You need the trailing “/” or the regex won’t match for a path.

[...] is the most excellent ftp client “lftp.” You can read more on my prior comments on lftp [...]