使用 lftp 通过 FTP 协议传输文件

若搭建了 nas ,想通过 FTP 协议来传输文件的话,除了使用 scp ,还有一个非常好用的工具 lftp ,我在 nas 中使用 lftp ,wifi 是 690m 的,使用 lftp 传输一部 2g 的电影不用 30 秒。

使用 lftp 通过 FTP 协议传输文件

使用场景

我自己是使用 mac 进行开发的,然后自己家的路由器挂载了 NAS 。

因为 mac 不支持 NTFS 格式的硬盘,如果使用 windows 直接插入 usb 就可以传到硬盘。

但是我想使用 FTP 协议通过 wifi 或者 网线进行传输呢?

那么最好的办法就是使用 lftp 了,有很多类似 lftp 的工具,这篇文章主要介绍 lftp

lftp 是什么?

lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。

lftp的界面非常像一 个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。 它还有书签、排队、镜像、断点续传、多进程下载等功能。

lftp 的常用命令

  • lftp user@site:port #类似 SSH 的登录方式

  • lftp 192.168.1.253:/> get -c ls-lR.txt #下载单个文件,断点续传用-c参数

  • lftp 192.168.1.253:/> mget *.txt #下载多个文件

  • lftp 192.168.1.253:/> pget -n 4 ls-lR.txt #多线程下载

  • ls #显示远端文件列表(!ls 显示本地文件列表)

  • cd #切换远端目录(lcd 切换本地目录)

  • get #下载远端文件

  • mget #下载远端文件(可以用通配符也就是 *)

  • pget #使用多个线程来下载远端文件, 预设为五个

  • mirror #下载/上传(mirror -R)/同步 整个目录

  • put #上传文件

  • mput #上传多个文件(支持通配符)

  • mv #移动远端文件(远端文件改名)

  • rm #删除远端文件。 参数-r,递归删除文件夹

  • mrm #删除多个远端文件(支持通配符)

  • mkdir #建立远端目录

  • rmdir #删除远端目录

  • pwd #显示目前远端所在目录(lpwd 显示本地目录)

  • du #计算远端目录的大小

  • set net:limit-rate 10000,10000 #限制上传下载各为10KB/s

  • set ftp:charset gbk #设置远程ftp site用gbk编码

  • !#执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)

  • lcd#切换本地目录

  • lpwd#显示本地目录

  • alias #定义别名

  • bookmark #设定书签。

  • exit #退出ftp

缺省情况下,按 Ctrl+z,正在执行的任务将转为后台执行,也可以 在命令行末尾加&符号使任务在后台执行。

用 jobs 命令可以查看所 有的后台进程。

用 queue 命令可以排队新的任务。如果退出lftp时还有任务在后台执行,lftp将转为后台执行。

解决乱码

在用 lftp 访问国内一些 ftp 服务器时,往往看到的中文是乱码

这是由于服务器和本地编码不一致造成的。我们只要在主目录下新建一个文件~/.lftprc 或者 ~/.lftp/rc

并在其中加入以下内容

1
2
3
4
5
6
debug 3
set ftp:charset GBK
set file:charset UTF-8
#set ftp:passtive-mode no
#alias utf8 " set ftp:charset UTF-8"
#alias gbk " set ftp:charset GBK"

其他客户端

  • kftpgrabber KDE 下 ftp 客户端,支持编码选择。对中文支持较好

  • gftp gnome下 ftp 客户端,目前对中文支持尚不太好,受抱怨颇多。

  • fireftp firefox 的 ftp 客户端插件,新版对中文支持较好。

  • FileZilla 对中文支持较好

  • CrossFTP 基于 Java 的稳定 ftp 客户端和同步工具。优良的中文/Unicode 支持。

文章对你有用?给博主一个支持
0%