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.