http://lcs.ios.ac.cn/~scwang/html/lftp.html
// 使用lftp脚本,lftp -f 脚本名,这样就可以方便配合shell来实现ftp操作
lftp是一个命令行ftp客户端,于我而言在许多方面其功能比许多图形界面的要好得多。它内建了bash支持,可以方便地调用bash的命令,例如支持管道可以把ls命令导出到grep命令中,方便地实现ftp查找功能。
实用命令在这里我并不想对lftp的命令做一个完整的介绍,而只想列出一些我自己认为比较有实用的命令技巧。
用下面的命令来下载一个目录
mirror dirname
用下面的命令来上传一个目录
mirror -R dirname
注意:是大写的R而不是小写的。
我希望在做mirror时,文件和目录的访问权限设置采用本地的策略 。在.lftp/rc文件中加入下面的内容:
set mirror:set-permissions off
把文件filea以文件名fileb上传到服务器上
put filea -o fileb
直接使用FTP协议的命令,例如:
quote "PASV"
lftp支持脚本,这使得我们可以把某些例行的工作用脚本的形式写出来,在用到的时候一次执行即可。例如我就使用下面的脚本来进行个人网站的文件上传工作
connect sitenameuser usernamecd public_htmllcd ~/public_htmlput index.phpmirror -R docsmirror -R htmlmirror -R imagemirror -R php
在进行网页上传时只需执行下面的命令即可
解决显示乱码问题
lftp -f scriptfilename
用lftp登陆某些ftp时会显示乱码,如登陆我们所里的ftp服务器。这是由于 lftp与远程的ftp服务器的编码不同而引起的。默认情况下,lftp从当前的 locale中取得字符编码,以便于能正确地在当前的terminal 上显示。如果这个编码与远程的ftp服务器的编码不同,那么lftp把从远程ftp服务器获得的数据本地显示时就会形成乱码。解决的方法是让lftp知道远程的ftp服务器使用了什么样的编码,可以通过下面的命令来实现
set ftp:charset gb2312
只要把gb2312换成你连接的ftp服务器的编码就可以了。但这并不足够,你会发现下载来的中文文件名都是乱码,你需要进一步地进行设定本地的编码:
set file:charset UTF-8
你也可以把这些写在你的个人配置文将~/.lftp/rc中。
Created by scwang, send any question toLastly modified on $Date: 2008-07-15 17:26:04 +0800 (Tue, 15 Jul 2008) $.