lftp 是一个档案传输程式。它可以用于复杂的 FTP 、 HTTP/HTTPS 和其他连线。如果指定了站点 URL,那么 lftp 将连线到该站点,否则会使用 open 命令建立连线。它是所有 Linux/Unix 命令列使用者的必备工具。我目前写了一些关于 Linux 下超快命令列下载加速器,比如 Axel 和 prozilla 。 lftp 是另一个能做相同的事,但有更多功能的工具。 lftp 可以处理几种档案访问方式:

ftp
ftps
http
https
hftp
fish
sftp
file

那么 lftp 的独特之处是什么?

lftp 中的每个操作都是可靠的,即任何非致命错误都被忽略,并且重复进行操作。所以如果下载中断,它会自动重新启动。即使 FTP 站群服务器不支援 REST 命令,lftp 也会尝试从开头检索档案,直到档案传输完成。
lftp 具有类似 shell 的命令语法,允许你在后台并行启动多个命令。
lftp 有一个内建的镜像站群功能,可以下载或更新整个目录树。还有一个反向镜像站群功能(mirror -R),它可以上传或更新站群服务器上的目录树。镜像站群也可以在两个远端站群服务器之间同步目录,如果可用的话会使用 FXP 。

如何使用 lftp 作为下载加速器
lftp 有 pget 命令。它能让你并行下载。语法是:

lftp -e ‘pget -n NUM -c url; exit’

例如,使用 pget 分 5 个部分下载 http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.2.tar.bz2:

$ cd /tmp
$ lftp -e ‘pget -n 5 -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.2.tar.bz2’

示例输出:

45108964 bytes transferred in 57 seconds (775.3K/s)
lftp :~>quit

这里:

pget – 并行下载档案
-n 5 – 将最大连线数设定为 5
-c – 如果当前目录存在 lfile.lftp-pget-status,则继续中断的传输

如何在 Linux/Unix 中使用 lftp 来加速 ftp/https 下载
再尝试新增 exit 命令:

$ lftp -e ‘pget -n 10 -c https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.xz; exit’

关于并行下载的说明
请注意,通过使用下载加速器,你将增加远端站群服务器负载。另请注意,lftp 可能无法在不支援多点下载的站点上工作,或者防火墙阻止了此类请求。
其它的命令提供了更多功能。有关更多资讯,请参考 lftp 的 man 页面:

man lftp