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 (&). Some commands allow redirecting its output (cat, ls) to file or via pipe to external command. Commands can be started conditionally based on termination status of previous command (&&, ||). Also, it is possible to group commands within () and execute them in background. All background jobs are executed in the same single process. You can bring a foreground job to background with ^Z and back with command `wait' (or `fg' which is alias to `wait'). When you think you are done but some jobs are not yet finished, you can just exit and lftp will move itself to nohup mode in background. The same happens when you have a real hangup. lftp has reliable put, reput, mirror, and many other commands. Use command `help' or read documentation to learn more. Every operation in lftp is reliable, that is any not fatal error is ignored and the operation is repeated. So if downloading breaks, it will be restarted from the point automatically. Even if ftp server does not support REST command, lftp will try to retrieve the file from the very beginning until the file is transferred completely.