使用 rz 和 sz 实现文件传输
简介¶
rz
,sz
是 GNU 免费工具 lrzsz
的两个子命令行程序,它们是 Linux/Unix 同 Windows 进行 ZModem 文件传输的命令行工具,但是 Windows 端需要支持 ZModem 的 telnet/ssh 客户端,比如 Xshell 或者 SecureCRT 下可以使用。
官网:https://www.gnu.org/software/lrzsz/
网络有些文章说 Putty 和 MobaXterm 无法使用 lrzsz
,其实通过安装插件 MobaXterm 是可以使用的,但体验没有 Xshell 或者 SecureCRT 好。
lrzsz is a unix communication package providing the XMODEM, YMODEM ZMODEM file transfer protocols. lrzsz is a heavily rehacked version of the last public domain release of Omen Technologies rzsz package, and is now free software and released under the GNU General Public Licence.
lrzsz
是一个提供 XMODEM、YMODEM、ZMODEM 文件传输协议的 unix communication package。lrzsz
是 Omen Technologies rzsz 软件包最后一个公共领域版本的重整版,现在是免费软件,并在 GNU 通用公共许可证下发布。
这两个命令也很好区分:
- sz:将选定的文件发送 (send) 到本地机器,s 作为 send 的简写;
- rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传 (receive) 到服务器,r 作为 receive 的简写。
特点¶
Features of lrzsz:
- 非常便携,使用 GNU autoconf 自动配置。
- 崩溃恢复(crash recovery)。
- 高达 8KB 的块大小 (ZMODEM8K)。
- 国际化(使用 GNU gettext)。德语翻译的程序输出(German translation of the programs output exists)。
- 远比原始来源更安全。
- 高性能。
make vcheck-z
可以查看 BPS 速率 - 我最近看到每秒 1.4 MB 通过管道传输大文件 (on a I586/133 system. Beat that!)。 - 良好的块大小计算(尝试根据发生的错误数量计算最佳块大小)。
- 它是免费软件。
安装¶
安装也比较容易,这里以 openEuler 系统为例:
yum install lrzsz
也可以选择从源码安装:
$ wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
$ tar zvxf lrzsz-0.12.20.tar.gz
$ cd lrzsz-0.12.20
$ $ ./configure --prefix=/path/to/lrzsz-0.12.20
$ make
$ make install
使用¶
首先利用 Xshell 登录服务器,然后就可以直接使用 rz
与 sz
了。sz
与 rz
有很多选项参数,但是基本不用设置也可以。
$ sz --help
$ rz --help
-+, --append #将文件内容追加到已存在的同名文件
-a, --ascii #以文本方式传输
-b, --binary #以二进制方式传输
--delay-startup N #等待 N 秒
-e, --escape #对字符转义
-E, --rename #已存在同名文件则重命名新上传的文件,以点和数字作为后缀
-p, --protect #对ZMODEM协议有效,如果目标文件已存在则跳过
-q, --quiet #安静执行,不输出提示信息
-v, --verbose #输出传输过程中的提示信息
-y, --overwrite #存在同名文件则替换
-X, --xmodem #使用XMODEM协议
-y, --overwrite #Yes, clobber existing file if any
--ymodem #使用YMODEM协议
-Z, --zmodem #使用ZMODEM协议
sz 下载案例¶
将两个文件传输到本地,直接 sz 发送,后面接文件名,回车之后就会弹出 Windows 对话框,选择要保存的位置即可,然后就开始传输了(一般传输小文件比较好)。
rz 上传案例¶
直接在命令行输入 rz 命令,稍后就会弹出 Windows 对话框,选择要上传的文件,确认之后就开始传输了。
MobaXterm 上使用¶
不是所有工具都支持 rz
与 sz
,必须支持 ZModem 协议才行,例如 putty 不能使用 rz
与 sz
。MobaXterm 默认也不支持 rz
与 sz
,但可以通过安装插件实现。
首先,下载 CygUtils.plugin
和 lrzsz
插件,放到 mobaxterm.exe
目录。
- 网址:https://mobaxterm.mobatek.net/plugins.html
- 插件:CygUtils.plugin,Lrzsz