FTP命令的模式

使用FTP命令传输一个Unix系统下ISO文件,下载下来后,发现怎么都不能使用,仔细研究,发现是FTP模式问题造成的。

查了一下FTP的两种传输模式:ASCII模式和BINARY模式
ASCII模式和BINARY模式的区别是回车换行的处理,binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,比如
Unix下是/n,Windows下是/r/n,Mac下是/r

ascii模式下会转换文件, 不能说是不同系统对回车换行解释不同, 而是不同的系统有不同的行结束符。
unix系统下行结束符是一个字节,即十六进制的0A; 而ms的系统是两个字节,即十六进制的0D 0A。

所以当你用ascii方式从unix的ftp  server下载文件时(不管是二进制或者文本文件),每检测到一个字节是0A,

就会自动插入一个0D,所以如果你的文件是二进制文件比如可执行文件、压缩包什么的,就肯

定不能用了。如果你的文件就是unix下的文本文件,你用ascii模式是正确的,要是误用了binary模式,
你在windows上看这个文件是没有换行的,里面是一个个的黑方块。
一般来说,我们最好都用binary方式,这样可以保证不出错。如果有文本格式转换的问题,即unix格式

的文本和dos格式的文本之间的转换。


如下是一个实验:

1、WINDOWS下新建ftp_ascii.txt内容如下:
hello word!
WINDOWD TO UNIX !
TEST FTP ASCII;

我们分别用两种模式上传到UNIX.


ASCII模式正常
/oracle$vi ftp_ascii.txt
hello word!
WINDOWD TO UNIX !
TEST FTP ASCII;

二进制模式 Binary有问题
/oracle$vi ftp_ascii.txt
hello word!^M
WINDOWD TO UNIX !^M
TEST FTP Binary;

 

由此可知我们采用ASCII模式传输文本可以避免传输中的^M问题。
在FlashFXP中可以在菜单->会话->传输模式中,选择ASCII ,BINARY ,自动三种模式

命令行中
ftp> help binary
binary          设置二进制传输类型
ftp> help ascii
ascii           设置 ASCII 传输类型
ftp> ascii
200 Type set to A.
ftp> bin
200 Type set to I.

所以,可以采用这样的习惯:
所有的FTP传输都采用binary方式,但是在windows下面编辑的文件需要事先转换成Unix模式,这个可以使用
UltraEdit的conversion功能,也可以在UltraEdit下面另存为Unix Terminators-LF的格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值