lftp is sophisticated file transfer program with command line interface. It supports FTP, HTTP, FISH, SFTP and FILE (local FS) protocols. GNU Readline library is used for input. BitTorrent protocol is supported as built-in `torrent' command. Low level stuff supported: ftp proxy, http proxy, ftp over http, opie/skey, fxp transfers, automatic retrying on non-fatal errors and timeouts, ipv6, socks, http/1.1, sftp v3-v6. See FEATURES for more detailed list of features. Every operation in lftp is reliable, that is any non-fatal error is ignored and the operation is retried. 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. lftp has shell-like command syntax allowing you to launch several commands in parallel in background (&). It is also 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 (c-z) and back with command `wait' (or `fg' which is alias to `wait'). To list running jobs, use command `jobs'. Some commands allow redirecting their output (cat, ls, ...) to file or via pipe to external command. Commands can be executed conditionally based on termination status of previous command (&&, ||). If you exit lftp when some jobs are not finished yet, lftp will move itself to nohup mode in background. The same happens when you have a real modem hangup or when you close an xterm. It is possible to attach to backgrounded lftp instance using `attach' command in lftp. lftp has builtin mirror which can download or update a whole directory tree. There is also reverse mirror (mirror -R) which uploads or updates a directory tree on server. There is command `at' to launch a job at specified time in current context, command `queue' to queue commands for sequential execution for current server, and much more. On startup, lftp executes /etc/lftp.conf and then ~/.lftprc and ~/.lftp/rc. You can place aliases and `set' commands there. Some people prefer to see full protocol debug, use `debug' to turn the debug on. Use `debug 3' to see only greeting messages and error messages. lftp has a number of settable variables. You can use `set -a' to see all variables and their values or `set -d' to see list of defaults. Variable names can be abbreviated and prefix can be omitted unless the rest becomes ambiguous. Use command `help' or read documentation (man lftp) to learn more. If lftp was compiled with ssl support, then it includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit.