LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2081|回复: 1

windows下编写脚本传送到solaris服务器如何保持不变

[复制链接]
发表于 2009-2-9 17:36:00 | 显示全部楼层 |阅读模式
用ftprush等这类ftp工具可以吗?
还是用sftp  bin方式传送
 楼主| 发表于 2009-2-9 17:36:42 | 显示全部楼层
文件类型
当我们使用ftp时,可简单地把文件分为两大类:文本文件和非文本文件。
文本文件也称为ASCII文件,其文件内容遵循ASCII的定义,主要特征如下:
ASCII 文件由若干行组成;可以用操作系统显示和编辑命令来显示和编辑
ASCII文件内容。
非文本文件是指除ASCII文件以外的所有文件格式。
在传送文件的时候有两个原则:
l ASCII文件(文本文件)必须使用ASCII方式传送
l 非 ASCII文件必须使用BIN方式传送
这主要是由于windows(包括dos)与unix环境下对文本文件中换行符的处
理不一样,windows 的换行符为\r\n(0x0d,0x0a),但unix 下只有一个字
符\n(0x0a)。同时ftp使用的是VTN(虚拟终端),要求使用统一的控制
字符,各主机需要在传输前自行转换,在接受该文件时也要执行一个转换。
所以如果是ASCII方式传送,则网络中传输的换行符为\r\n(回车,换行),
各主机把本地的文件送入网络时需要把本地的换行符转换成网络模式的换
行符,同时收到文本后,也需要把它换成本地的换行模式。所以,当从unix
向windows 以文本方式传输文件时:ftp 程序把文件中的\n 替换为\r\n,
windows 由于网络换行与本地相同,所以不再做变化。反过来讲,当从
windows向unix以文本方式传送文件时:ftp程序把文件中的\n替换为\r\n,
以该文件的内容实际上以发生变化。如果是在相同的操作系统上传输(一般
同一操作系统对换行的处理是一致的),则不管本地换行模式是否与网络模
式一致,最终接收方收到的文件与发送方是一致的。以前有些文件是以二进
制文件以ASC方式传到PC上保存,需要时,又以ASC方式传到工作站上,
由于作了两次转换(\
n-->\r\n-->\n),所以最终的文件与最初的文件一致。但两次传递的模式不一
致,则最终导致不一致。做个总结:
(1) 以bin方式,则不管双方的平台如何,原始文件与目标文件在二进制上
项一致;
(2) 以asc 方式,如果是跨平台,则需要考虑是否发生字符转换(但有时
是必须的,如把一个真的文本文件传到工作站上需要浏览,如果以bin
方式传递,则会出现不可显示字符\r[在vi一般显示为^M],同理,传到
PC上的文本文件也一样)。
可惜的是,不同操作系统的ASCII 文件格式一般是不兼容的,ftp 在不同的
操作系统之间进行ASCII文件的传输时,自动进行了格式转换,而对于二进
制文件来说,ftp不进行任何转换。
注意:可以将ASCII文件按二进制方式传输,但决不能将二进制文件按ASCII
方式传输,否则二进制文件的内容会遭到破坏而无法使用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表