Linux sz
命令使用详解
什么是 sz
命令?
sz
(Send ZMODEM)是 Linux 中通过 ZMODEM 协议从本地向远程终端发送文件的工具,通常与终端软件(如 Xshell、SecureCRT、MobaXterm)配合使用,它通过串口或 SSH 连接实现无需额外配置的快速文件传输,尤其适合在无图形界面的服务器环境中操作。
安装 sz
命令
大多数 Linux 系统默认未安装 sz
,需先安装 lrzsz 包:
# CentOS/RHEL sudo yum install lrzsz # Arch/Manjaro sudo pacman -S lrzsz
验证安装:sz --version
或 which sz
(输出路径如 /usr/bin/sz
即成功)。
基础用法
sz [选项] 文件1 文件2 ...
常用场景:
-
发送单个文件
sz backup.tar.gz
执行后,终端会弹出文件接收对话框(需终端支持 ZMODEM)。
-
发送多个文件
sz file1.txt file2.jpg /path/to/document.pdf
-
发送文件夹(需先压缩)
tar czf project.tar.gz project/ && sz project.tar.gz
常用参数详解
参数 | 说明 |
---|---|
-e |
转义控制字符(推荐始终启用) |
-b |
使用二进制模式传输(非文本文件必选) |
-q |
静默模式(不显示进度条) |
-y |
覆盖同名文件(默认跳过) |
-c "命令" |
传输前执行命令(如解压) |
示例:
# 以二进制模式强制发送图片并覆盖远程文件 sz -b -y photo.png # 静默发送日志文件(不显示进度) sz -q server.log
常见问题解决(FAQ)
-
终端无反应?
- 确认终端软件支持 ZMODEM(Xshell/SecureCRT 需开启选项)。
- 检查连接类型:必须为 SSH(不支持 Telnet)。
-
传输中断或失败?
- 网络波动:重试并添加
-e
参数(sz -e 文件
)。 - 大文件限制:拆分文件或使用
tar
分卷压缩:tar czf - bigfile | split -b 100M - bigfile.tar.gz. && sz bigfile.tar.gz.*
- 网络波动:重试并添加
-
如何接收文件?
使用配套命令rz
(Receive ZMODEM)从远程终端获取文件到本地。
安全注意事项
-
传输敏感数据时:
- 始终通过 SSH 加密连接(避免使用串口)。
- 传输后使用
shred
擦除本地临时文件:shred -u tempfile && sz cleanfile
-
验证文件完整性:
发送前后用md5sum
校验:md5sum 文件 # 发送前记录哈希值 md5sum 接收的文件 # 接收后对比
替代方案
scp
/sftp
:更安全的原生 SSH 传输工具(无需终端支持)。rsync
:适合增量同步大文件。- 图形工具:FileZilla(支持 SFTP)。
sz
是 Linux 运维中高效的轻量级文件传输工具,尤其适合:
- 快速发送小文件或日志
- 无 GUI 的服务器环境
- 与支持 ZMODEM 的终端无缝协作
引用说明: 参考 lrzsz 官方文档 及 Linux
man sz
手册页,实践基于 Ubuntu 22.04/CentOS 7 测试,终端兼容性请查阅 Xshell/SecureCRT 官方说明。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5443.html