lftp is quite a powerful ftp client. It uses GNU readline to read commands.
It uses shell-like command syntax allowing you to launch several commands in
parallel in background (&). lftp has reliable put, reput, mirror, and many
other commands.