unix下的命令ftp, 只能put 、get 文本文件(plain file), 而不支持传输整个目录, 因此每次传输一个目录, 需要手动打包成一个tarball文件,这不可厚非的,压缩后毕竟能够节约网络带宽。 但作为一个传统的ftp,还是存在许多弊端, 最大的问题在于不支持断点传输, 若由于网络故障,则必须重新传输,当然一般我们可以使用更强大的ssh(scp)、wget、axel等传输。 对于只支持ftp协议的情况,则推荐一个ftp强化版-----ncftp,当然用的也是ftp协议的。ncftp是文字模式ftp程序的佼佼者,它具备多样特色, 包括显示传输速率,下载进度,自动续传,标住书签,可通过防火墙和代理服务器等。
ncftp与传统的ftp相比(直接引用http://hi.baidu.com/slip2008/item/bf4b252725cded8e9c63d1fc),主要有以下改进或变化:
1、子目录下载,采用递归的,下载整个目录及其子目录。
2、支持断点续传。一次传输没有完成,下次可以接着传输未完成的文件。
3、匿名ftp自动登录。目前大部分ftp站点都可以匿名登录,ncftp可以自动登录(默认方式)。
4、支持通过防火墙传输和代理服务器。
5、支持书签功能,可以将某个位置存在书签中方便以后直接跳转。
6、可以显示下载进度。
7、显示传输速率。
8、文件列表自动满页暂停。当ls文件列表超过一屏,ncftp会自动暂停,等待任意键继续。
9、默认是以binary方式传输数据。
10、支持文件名自动完成。例如服务器上有文件download.list,您只要输入get down<TAB>,系统可以自动填充文件名为download.list。
11、自动记忆站点的离开时的目录,下次登录会自动进入那个目录。
下面我们就详细介绍一下如何使用ncftp进行日常的ftp工作。ncftp的命令行语法是:ncftp [flags] [<host> | <directory URL to browse>]。flags常见的包括:
-u XX 使用用户名XX代替匿名。
-p XX 使用密码XX代替默认密码。
-P XX 使用端口XX,默认端口是21。
-d XX 如果连接不上,间隔XX秒重试。
-g XX 重试XX次。
命令和ftp基本一样, 支持参数更多些,比如get 可以加上-R参数进行递归式下载, put 可以支持递归式上传。
还有一个强大的功能是支持调用本地的编辑器(比如vim,需要设置EDITOR环境变量,需要export),在线编辑文件。 原理是先下载到本地,生成一个临时文件,然后编辑完后在上传,因此可能有时会小卡下!
2013年8月05日 15:23
好像和 lftp 差不多呢=w=
2013年8月06日 12:30
@依云: 我主要是想编辑访问手机文件, 下载工具基本就用wget和axel了。 ltfp也是非常强大的。
2013年8月06日 13:11
@krystism: 我和手机互传文件用 scp、rsync 或者 lftp。编辑的话,ssh 上去拿 vim 改 :-)
2013年8月07日 12:45
@依云: scp需要手机安装ssh服务器吧?
2013年8月07日 13:01
@krystism: 当然。不安装服务怎么和手机传文件呢……MTP 坑爹死了 :-(
2024年2月21日 22:48
I read your post and I found it amazing! thank