linux命令行下的FTP 客户端推荐:NcFTP

By | 2012年01月11日


ncftp与传统的ftp相比,主要有以下改进或变化:详细内容见其官方网站:http://www.ncftp.com/
(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

# apt-get install ncftp
 编译安装:
 # wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.5-src.tar.gz
 # tar zxvf ncftp-3.2.5-src.tar.gz
 # cd ncftp-3.2.5/
 # ./configure --prefix=/usr/local/ncftp
 # make && make install
 # ln -s /usr/local/ncftp/bin/ncftp /usr/bin/ncftp

链接服务器:

#ncftp -u  username -p password yourhost

登录主机的ftp后和本地的操作类似

基本功能:

ls cd 查看服务器端的目录

lls lcd 查看本地的目录

get  下载文件

下载单个文件:get filename

批量下载多个文件:使用空格或*    get  ble*

put  上传文件

上传单个文件:put filename

上传多个文件:使用空格或*   put ble*

上传目录:put -R 目录名

ncftpget

ncftpget ftp://ftp.shike.me/linux/test.zip

ncftpput

ncftpput [flags] remote-host remote-dir local-files...
ncftpput ftp.shiek.me /linux test.zip

高级功能:

批处理及计划任务:bash及cron

附: ncftp命令参数

(1) ncftpput命令参数
可以实现在shell脚本中自动连接上传数据。
-u ftp帐户
-p ftp密码
-P ftp端口号
-m 在传之前尝试在目录位置创建目录(用于传目录的情况)
-R 递规传子目录
# ncftpput -u FTP帐号 -p FTP密码 -P FTP端口 -m -R <FTP服务器IP> <远程目录> <本地目录>

示例:
将本地/etc/目录内的所有文件和目录,上传到FTP服务器的flv/games/目录内(如果不存在flv/games/目录则自动创建)。
# /usr/local/ncftp/bin/ncftpput -u koumm -p koumm -P 21 -m -R 192.168.162.137  flv/games/ /etc/*

(2) ncftp命令参数
ascii      cat        get        lookup     mkdir      pwd        set
bgget      cd         help       lpage      open       quit       show
bgput      chmod      jobs       lpwd       page       quote      site
bgstart    close      lcd        lrename    passive    rename     type
binary     debug      lchmod     lrm        pdir       rhelp      umask
bookmark   dir        lls        lrmdir     pls        rm         version
bookmarks  edit       lmkdir     ls         put        rmdir

命令说明:
ncftp的基本命令和普通ftp一样,可以输入help获得命令列表。对于所有的命令,都可以使用help <命令>的格式获得详细帮助。l开头的就是对本地执行的命令,其它的就是对登入的ftp服务目录的操作命令。
增加的本地文件系统的操作命令:
lls: 列出本地当前目录文件;
lmkdir : 本地建立目录;
lrename: 本地文件改名;
lpwd: 显示当前本地路 径;
lchmod: 改变本地文件权限;
lpage: 显示本地文件内容;
lrm: 删除本地文件;
lrmdir: 删除本地目录。

示例1: 不用用户登陆的话就是匿名登陆
ncftp 192.168.162.138
ncftp / >

示例2: 上传
命令说明:lcd到本地的目的目录,put -R 目录名
ncftp 192.168.162.138
ncftp / >lcd /data
ncftp / > lls
abc/  bak/  ddd/
ncftp / >put -R abc

ncftp / > put -h
Usage: put [-flags] file1 [file2…]
Flags:
-z   : Send the local file file1, and name the remote copy to file2.
-f   : Force overwrite (do not try to auto-resume transfers).
-a   : Send files using ASCII mode.
-A   : Append entire local file to the remote file.
-R   : Recursive.  Useful for sending whole directories.
ncftp / >
说明: 经测试,上传命令对目录的递规支持比较好,子目录及其文件都能传,下载就不行了,只能当前目录下的文件一级目录及文件进行下载,子目录就不行了。

(3) ncftpget
格式:
ncftpget -u 帐号 -p 密码   远程服务器IP 上传的目录 本地上传文件
示例:
# ncftpget -u anonymous 218.108.*.* /data /pub/ftp.gz


 

One thought on “linux命令行下的FTP 客户端推荐:NcFTP

  1. business review

    You can retrieve an entire directory tree of files by using the -R flag. However, this will work only if the remote FTP server is a UNIX server, or emulates UNIX’s list output. Example: $ ncftpget -R http://ftp.ncftp.com /tmp /pub/ncftp This would create a /tmp/ncftp hierarchy.

    Reply

发表评论

邮箱地址不会被公开。 必填项已用*标注