尝试一下 lftp
一直在用 gftp,也一直在忍受在删除许多文件时 gftp 突然崩溃退出的问题。现在我的耐心也到了极限了,搜了一下替代品,发现 lftp 这一老牌工具享有诸多好评,故尝试之。
对于 lftp 的安装,各发行版各有其安装方式,在此略过,下面仅记录 lftp 的简单使用方法。
lftp 登录 ftp 服务器的方法貌似很多种,我感觉最适合我的是:
$ lftp ftp://user:password@IP:port
登录 ftp 服务器之后,要查看当前目录中的文件列表,可使用在终端里经常使用的 ls 命令;如果查看本地机器的当前目录,可使用 !ls 命令。在 lftp 环境中可以通过命令前附上 ! 符号的方式调用许多本地终端命令。
对我而言,在 lftp 环境中使用 ls 命令非常不爽,因为它给我如下的回应:
lftp m2@m2.org:~/article> ls
-rw------- 1 1000 1000 329492 Jul 11 00:59 cch-01.pdf
-rw------- 1 1000 1000 330985 Jul 03 02:51 fsx-01.pdf
-rw------- 1 1000 1000 300035 Jul 02 06:30 fsx-02.pdf
-rw------- 1 1000 1000 348450 Jul 09 12:18 lj-01.pdf
-rw------- 1 1000 1000 329492 Jul 11 00:59 cch-01.pdf
-rw------- 1 1000 1000 330985 Jul 03 02:51 fsx-01.pdf
-rw------- 1 1000 1000 300035 Jul 02 06:30 fsx-02.pdf
-rw------- 1 1000 1000 348450 Jul 09 12:18 lj-01.pdf
我不知道该如何设置 lftp 环境中的 ls 命令的输出格式,但是使用 cls 命令来查看文件列表,会给出我想要的输出格式,譬如:
lftp m2@m2.org:~/article> cls
cch-01.pdf fsx-02.pdf lj-02.pdf lxc-2.pdf
fsx-01.pdf lj-01.pdf lj-patent/ tl-ok.pdf
cch-01.pdf fsx-02.pdf lj-02.pdf lxc-2.pdf
fsx-01.pdf lj-01.pdf lj-patent/ tl-ok.pdf
要从 ftp 服务器上下载一个文件,可以使用 get 命令:
lftp m2@192.168.0.2:~/article> get cch-01.pdf
329492 bytes transferred
329492 bytes transferred
要从本地上传一个文件,可以使用 put 命令:
lftp m2@192.168.0.2:~/article> put cch-01.pdf
329492 bytes transferred
329492 bytes transferred
要从 ftp 服务器上下载一个目录,可以使用 mirror 命令:
lftp > mirror 文件目录名
要从本地上传一个目录,可以使用 mirror -R 命令:
lftp > mirror -R 本地目录名
对我而言,上述命令基本足够使用了。还剩下一个问题就是书签的设置,因为我不想每次登录 ftp 都要输入很长的登录命令,并且还要考虑本地当前目录与服务器当期目录的切换问题。
我是这样设置书签的:
- 首先在本地上选择一个目录作为常用的文件下载目录,譬如 ~/download,将终端当前目录切换到该目录下;
- 使用 lftp 登录 ftp 服务器,并在 lftp 环境中将服务器端的当前目录切换到平日最经常光顾的目录,譬如 article 目录;
- 在 lftp 环境中使用 bookmark 命令设置书签:
lftp m2@192.168.0.2:~/article> bookmark add article
这样,下次再使用 lftp 登录服务器时,只需:
$ lftp article
2009年1月16日 18:13
lftp是个好东西
最常用的就是拿它来lftp sftp:// 来取旁边机子的东西
后来发现有sshfs后只是偶尔用它了,不过取ftp的东东还是首选lftp