GoForum🌐 V2EX

rzsz: Rust 重写的 lrzsz

ob · 2026-04-17 12:40 · 0 次点赞 · 1 条回复

rzsz:Rust 重写的 lrzsz

起因是,在使用 rz 传文件的过程中,时不时会遇到控制台满屏乱码的情况,有时候传的日志文件比较大,直接就刷个不停,按 Ctrl+C 都结束不了。 然后就想着基于自己的使用习惯,给自己搞个简单好用的(主要是有 AI 帮忙),主要解决三个问题:

  • 难以接受的乱码问题
  • 每次用命令的时候,老得停顿思考一下是用 rz 还是 sz ,而且这俩组合按键按的有点别扭
  • 统一改用 zz ,自动判断是发送还是接收文件,旧的 rz 和 sz 依然可用

安装

一键脚本(自动检测架构、装到 /usr/local/bin、建好所有符号链接):

curl -fsSL https://raw.githubusercontent.com/kookob/rzsz/main/install.sh | bash

cargo

cargo install rzsz

旧的 lrzsz 怎么办?

一键脚本会检测到系统已有的 lrzsz 可选择替换或保留。想自己手动清理直接:

sudo apt purge -y lrzsz       # Debian/Ubuntu
sudo yum remove -y lrzsz      # CentOS/RHEL
hash -r                       # 清 shell 命令缓存,否则 rz 可能还指向旧路径

不想完全替代也行,装完后老的 rz sz 保留,日常用新的 zz 即可。回滚用 bash install.sh --uninstall

用法

和 lrzsz 完全一样,直接替代。最常用的两条:

# 接收文件(在服务器执行,终端弹选择框让你选本地文件)
zz

# 发送文件(把服务器上的文件下载到本地)
zz file.tar.gz
zz *.log                # 多文件

重名文件处理

默认直接覆盖。也可以改行为:

zz -y                   # 显式指定覆盖(默认行为)
zz -p                   # 保护模式:已存在则跳过
zz -E                   # 重命名:加 .1 .2 .3 后缀,原文件保留

提速 / 大文件

zz -k big.bin           # 1024 字节块(默认)
zz -8 big.bin           # 8K 字节块,大文件更快
zz -T file              # turbo 模式,减少字节转义开销

路径控制(发送时)

zz -f dir/file.log      # 发送时带完整路径
zz -j file              # 接收时剥掉路径,只存到当前目录

断点续传

zz -r big.iso           # 上次没传完,从中断处继续

其他常用

zz -v                   # 详细输出(可叠加 -vv -vvv )
zz -q                   # 安静模式,不打进度
zz -e file              # 转义所有控制字符(某些透明代理需要)
zz -R                   # 限制路径,禁止 .. (默认开启)
zz -U                   # 关闭限制模式

zz --version
zz --help               # 所有选项

XModem / YModem (串口刷固件场景)

rx file.bin             # XModem 接收
sx firmware.hex         # XModem 发送
rb                      # YModem 批量接收
sb file1 file2          # YModem 批量发送

其他

  • 单二进制,~375KB ( musl 静态 < 500KB )
  • 协议完整:ZModem + YModem + XModem
  • 和 C lrzsz 双向兼容

项目地址: https://github.com/kookob/rzsz

觉得有用请点个 Star ⭐️,有问题欢迎提 Issue 。

1 条回复
keepfun · 2026-04-17 12:40
#1

之前也有这个痛点。回头试试。

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: ob
发布: 2026-04-17
点赞: 0
回复: 0