LFTP : 一个功能强大的命令行FTP程序

大家好,这篇文章是介绍Lftp以及如何在Linux操作系统下安装的。Lftp是一个基于命令行的文件传输软件(也被称为FTP客户端),由Alexander Lukyanov开发并以GNU GPL协议许可发行。除了FTP协议外,它还支持FTPS,HTTP,HTTPS,HFTP,FISH,以及SFTP等协议。这个程序还支持FXP,允许数据绕过客户端直接在两个FTP服务器之间传输。

它有很多很棒的高级功能,比如递归镜像整个目录树以及断点续传下载。传输任务可以安排在稍后的时间段计划执行,可以限制带宽,可以创建传输列表,还支持类似Unix shell的任务控制。客户端还可以在交互式或自动脚本里使用。

安装Lftp

在运行lftp之前,我们需要确定它已经正确安装在我们的Linux发行版中了。下面是在常见Linux发行版中安装lftp的一些命令。

Ubuntu 14.04 LTS

在Ubuntu 14.04 LTS以及它的衍生版中,我们可以通过apt管理程序安装lftp。要安装它,我们需要使用sudo权限在shell或终端里运行下面的命令。

  1. $ sudo apt-get install lftp

ubuntu install lftp

CentOS/Fedora/RHEL

因为在Fedora,CentOS和RHEL的软件仓库里也能找到lftp,我们可以用yum管理程序来安装它。

  1. $ sudo yum install lftp

fedora lftp

Arch Linux

在Arch Linux安装包仓库里也有,我们可以简单地使用pacman来安装它。

  1. $ sudo pacman -S lftp

archlinux install lftp

OpenSuse

OpenSuse系统里的包管理软件Zypper可以用来安装lftp。下面是在OpenSuse机器上用来安装的命令。

  1. $ sudo zypper install lftp

opensuse lftp install

登录

要登录到ftp服务器或sftp服务器,我们首先需要知道所要求的认证信息,比如用户名,密码,端口。

之后,我们可以通过lftp来登录。

  1. $ lftp ftp://linoxide@localhost

ftp login

如果需要指定登录端口,我们可以按下面的方式加上去。

  1. $ lftp ftp://linoxide@localhost:21

ftp login with ports

导航

我们可以用ls命令来列出文件和目录,用cd命令进入到目录。

ls and cd

上传和下载文件

我们可以用pget命令来从远端服务器下载文件。

  1. > pget linspeed.svg

pget lftp

我们可以用put命令来上传文件到远端服务器。

  1. > put linoxide.tar

upload with put

要恢复之前只下载了一部分的文件/目录,我们可以用-c开关:

  1. > mirror -c Directory
  2. >pget -c linoxide.tar
  3. > put -c upload.tar

使用镜像命令

我们可以用mirror命令来下载所指定的整个目录。

  1. > mirror remote local

download with mirror

还可以做反向镜像(mirror -R),可以用来上传或更新本地目录树到服务器上。

  1. > mirror -R local remote

upload or update with mirror reverse

要恢复之前下载了一部分的文件/目录,我们可以用-c开关:

  1. > mirror -c Directory

下载队列

我们可以在lftp里使用queue的选项,这样我们可以像基于GUI的客户端那样挨个下载队列里选择的文件。下面举个例子。

为了避免队列自动开始传输,我们可以这样做:

  1. > queue stop

现在,我们添加任务到队列。

  1. > queue mirror "directory"
  2. > queue pget "file.tar"

在建立好队列后,我们再运行queue start命令。

  1. > queue start

可以运行下面的命令移除整个队列。

  1. > queue -d

分块下载

下面是一个把一个文件分成3块来下载的例子,你可以根据自己的需要调整。

使用pget命令分块功能的方式是pget -n 3 file.tar,里面的3是分块的数目。

  1. > pget -n 3 file.tar

使用mirror命令分块功能的方式是mirror --use-pget-n=3 directory,里面的3是分块的数目。

  1. > mirror --use-pget-n=3 linxoxide

我们可以用jobs -v命令来查看每个独立分块的下载速度以及整体速度。

停止,继续或删除一次传输任务

要取消传输我们可以按下Ctrl+C。而要恢复下载我们可以像下面那样使用-c (--continue)开关。

  1. > mirror -c directory

要删除一次正在正在传输的任务我们可以用kill命令,而要删除所有任务我们可以使用下面那样的kill all命令。

  1. > kill
  2. > kill all

退出

要从lftp退出,我们需要在终端或lftp交互接口中运行exit命令。

  1. > exit

总结

哇!我们已经成功地安装了lftp并学会了它的一些基础的主要使用方式。lftp是一个非常棒的命令行ftp客户端,它支持许多额外的功能以及很酷的特性。它比其他普通ftp客户端多了很多东西。好吧,你要是有任何问题,建议,反馈,请在下面的评论区里留言。谢谢!享用lftp吧

原文发布时间:2015-05-17

本文来自云栖合作伙伴“linux中国”

LFTP : 一个功能强大的命令行FTP程序相关推荐

  1. Ledger-复式记账的一个功能强大的命令行工具

    无论你是一个电脑极客还是普通用户,记录账户开销总是必不可少的.虽然在Linux上有很多基于GUI的记账工具(比如 - GNUCash)受到大家欢迎,但是工作在命令行的记账工具是很多用户难以想象的.在本 ...

  2. 使用.NET Core快速开发一个较正规的命令行应用程序

    程序员的世界,命令行工具一直是"体验非常友好"的工具,也能自动化完成很多事情,同时还能结合shell来进行某项任务的批处理(脚本).在.NET Core中,命令行应用程序是基础,但 ...

  3. [league/climate]一个功能健全的命令行功能操作库

    我们在使用Linux系统当中,会和命令行打交道,很多的命令行并不只有一个简单的运行参数,而是有各种交互操作.简单地比如输入密码.Y/N.[yes]等效果,那么PHP能不能做到这些呢?可以的. 基本用法 ...

  4. python 3.7.5下载_you-get简介:功能强大的命令行工具,随心所欲下载视频

    you-get是一个Python编写的网络视频下载工具,只要我们给他一个网址,他就会分析网页中的视频,并替我们高速下载到本地.这里悄悄的说,某些VIP视频也是可以下载的哦!但是因为各种网站支持度和更新 ...

  5. 基于Fluent Terminal和Cmder打造一个美观的Windows命令行工具

    前言   相信有很多小伙伴跟我一样,觉得Windows的原生命令行工具具有很多缺点:传统的黑底白字(Windows PowerShell则是蓝底白字)极不美观,复制文本不方便,不支持多Tab页导致多窗 ...

  6. Linux中lftp命令 – 优秀的命令行FTP客户端

    lftp支持FTP.SETP.HTTP和FTPs等多种文件传输协议. 还支持FXP,允许数据绕过客户端直接在两个FTP服务器之间传输.同时还有递归镜像整个目录树以及断点续传下载的功能, lftp的传输 ...

  7. rtorrent - 强大的命令行BT客户端

    rtorrent - 强大的命令行BT客户端 NOTE - 文中展示的所有示例和指令都已经在Ubuntu 13.04中测试过. 一.           安装 [root@GY-10000 data] ...

  8. 按一行一行的方法将一个文本文件复制到另一个文件中_命令行技巧:分割文件内容...

    (给Linux爱好者加星标,提升Linux技能) 英文:Stephen Snow,翻译:Linux中国/MjSeven linux.cn/article-10809-1.html Fedora 发行版 ...

  9. linux tee 日志输出_25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?...

    众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的.这样不但操作起来效率比较高,而且界面也比较炫酷.下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器. 1. exa ...

最新文章

  1. SAS 对数据的拼接与串接
  2. Python中面向对象的讲解(3)
  3. oracle+olh+hive,hadoop+hive+hbase的简单安装 | YallonKing
  4. 微信公众号Java开发-笔记02【开发接入准备、开发接入】
  5. 三个具有代表性的STL函数
  6. Java 对象的序列化
  7. [Example of Sklearn] - Example
  8. 360笔试题-字符置换
  9. 【GDB调试学习笔记】Makefile多级目录生成可执行文件
  10. CF995C Leaving the Bar
  11. java代码转python代码_如何实现Java代码转换成python代码
  12. 华为交换机配置console口和telnet密码实例
  13. 100兆的网速在电脑上怎样测试软件,怎么测网速多少兆,360测网速
  14. opensips mysql_基于opensips mysql数据库用户管理
  15. 绘画软件:krita for Mac
  16. 消除ImageButton的灰色背景图片
  17. 华为云视频会议系统介绍,云南昆明企业智能云视频会议系统解决方案
  18. 计算机体系结构-第五章-指令级并行
  19. 蓝牙核心规范(V5.2)7.5-深入详解之ATT(属性协议)
  20. 虚拟机显示网络不可用

热门文章

  1. 两个数组对象合并操作,键值对合并
  2. 网站需要密码登录访问php源码
  3. Java23种设计模式之概念篇
  4. 寻找Linux单机负载瓶颈
  5. Magento: 根据产品属性加载产品信息 Load A Category or Product by an Attribute
  6. MongoDB 教程五: MongoDB固定集合和性能优化 (索引Indexes, 优化器, 慢查询profile)
  7. Picturefill.WP – 根据屏幕尺寸加载合适的图片
  8. 为iOS7重新设计你的App
  9. WordPress 数据库操作WPDB对象($wpdb)用法详解
  10. 深入理解Magento – 第六章 – 高级Magento模型