Lftp

lftp is a command-line program client for several file transfer protocols. lftp is designed for Unix and Unix-like operating systems. It was developed by Alexander Lukyanov, and is distributed under the GNU General Public License.

lftp can transfer files via FTP, FTPS, HTTP, HTTPS, FISH, SFTP, BitTorrent, and FTP over HTTP proxy. It also supports the File eXchange Protocol (FXP), which allows the client to transfer files from one remote FTP server to another.

Among lftp's features are transfer queues, segmented file transfer, resuming partial downloads, bandwidth throttling, and recursive copying of file directories. The client can be used interactively or automated with scripts. It has Unix shell-like job control, and a facility for scheduling file transfers for execution at a later time.

Development history
lftp was initially developed as part of the ftpclass package. Subsequently it grew and became a more capable program (e.g., mirroring capability was added), and was renamed to lftp in February 1997. The initial goals of development were robustness, automatic resuming of transfers, and increasing transfer speed by transferring parts of a file in parallel using several connections as well as by protocol pipelining. Version 2.0 introduced HTTP and IPv6 support in 1999, more protocols were added later.