secureCRT使用sz/rz命令在Linux和Windows间传输文件失败问题

sz,rz是Linux/Unix和Windows进行ZModem文件传输的命令行工具。

【windows端】

需要支持ZModem协议的telnet/ssh客户端(xshell支持)。网上下一个,我用的是SecureCRT,平常用它登陆到Unix/Linux开发机。

【linux端】

在Linux端安装rz/sz工具(嵌入式开发中多数已将编译好的rz/sz工具放到rootfs中了,普通的Linux系统如果没有,可以下载源码自己安装)。在命令行中直接运行rz/sz,实现和Windows之间的文件传输。

rz 会弹出本地端(windows)目录窗口,选择文件上传到开发机;

sz file1 file2 则是选择开发机上的文件拷贝到本地端(windows);

其中windows的upload/download默认路径是当前使用工具设定的,比如我的secureCRT,在Session->Session Options->Terminal->Xmodem/Zmodem->Directories


【为什么要用rz/sz】

普通Linux和Windows之间的文件共享方法,主要是建立nfs文件共享,和tftp之类的方法,但是都很麻烦,如果只是小文件(几十K,几百K),用rz/sz方便快捷。(据说rz/sz传输速度只有10KB/s左右,我使用的时候显示貌似并不是这样)


【sz/rz传输中断问题】

传输文件稍微大一点(几百M,几G),经常有连接中断的问题。

rz会有上传中断或文件发生变化,改用二进制传输 rz -be,再把弹出对话框的"Upload files as ASCII"勾选去掉

-a: ascii 用ASCII码方式上传下载

-b: binary 用binary的方式上传下载,不解释字符为ascii(上传rar,gif等文件一般使用b)

-e: escape 强制escape所有控制字符,比如ctrl+x,DEL等(因文件较大而上传出错时一般使用e)

  • rz上传较大文件时,有时传一半会断,使用 rz -be,可以解决。
  • sz不太一样,下载较大文件时,有时会传一半中止(还会断开开发机连接),使用 sz -be 有时可以解决问题;仍然不行时,就比较玄:尝试换个时间sz,或把文件打包压缩再sz,或scp把文件先传到别的机器再sz,或把文件传到什么比较方便的地方再下载......

你可能感兴趣的:(Linux)