macOS必备,sz命令传文件技巧

在 macOS 上,首先通过 Homebrew 安装 lrzsz:运行 brew install lrzsz,安装后,在终端使用 sz 文件名 发送文件,接收端需支持 ZMODEM 协议。

如果你需要在 macOS 终端(Terminal)和远程服务器(通常是 Linux 服务器)之间方便地传输文件,特别是小文件,sz 命令(以及它的搭档 rz)是一个非常经典且实用的工具,它利用 Zmodem 协议实现快速、简单的文件传输,本文将详细介绍如何在 macOS 上安装、配置和使用 sz 命令。

核心概念:lrzsz 与 Zmodem 协议

  • sz 命令是什么? sz (Send Zmodem) 命令用于从你的本地 macOS 电脑发送文件到远程服务器
  • rz 命令是什么? rz (Receive Zmodem) 命令用于从远程服务器接收文件到你的本地 macOS 电脑
  • lrzsz 是什么? szrz 命令并不是 macOS 系统自带的,它们属于一个名为 lrzsz 的开源软件包,你需要先安装这个包才能在 macOS 上使用这些命令。
  • Zmodem 协议是什么? 这是一种在串行连接(如早期的拨号 Modem)上高效传输文件的协议,它支持断点续传、错误检测和纠正,在现代使用中,它通过终端模拟器(如 macOS 自带的 Terminal 或 iTerm2)在 SSH 连接上工作。

第一步:在 macOS 上安装 lrzsz

由于 macOS 不自带 sz/rz,安装 lrzsz 是必须的,推荐使用 Homebrew 这个 macOS 上强大的包管理器,安装过程简单可靠:

  1. 安装 Homebrew (如果尚未安装):
    打开 终端 (在 /应用程序/实用工具/ 文件夹中),粘贴并运行以下命令:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    按照屏幕提示完成安装,安装完成后,运行 brew doctor 检查是否配置正确。

  2. 使用 Homebrew 安装 lrzsz:
    在终端中运行以下命令:

    brew install lrzsz

    Homebrew 会自动下载、编译并安装 lrzsz 及其依赖。

  3. 验证安装:
    安装完成后,运行以下命令检查 sz 是否可用:

    sz --version

    或者

    which sz

    如果看到版本信息或路径(如 /usr/local/bin/sz),说明安装成功。

第二步:配置终端模拟器以支持 Zmodem

仅仅安装了 lrzsz 还不够,你的终端程序需要知道当远程服务器触发 Zmodem 传输时,应该调用本地的 szrz 程序来处理,macOS 自带的 Terminal.app 默认支持 Zmodem,你需要使用支持 Zmodem 的终端或进行配置。

推荐方案:使用 iTerm2

iTerm2 是 macOS 上一个功能强大且免费的终端替代品,它原生支持 Zmodem 协议,配置非常简单:

  1. 下载并安装 iTerm2
  2. 安装完成后,无需额外配置,iTerm2 默认就能识别并正确处理 Zmodem 传输请求。

备选方案:配置 macOS 自带 Terminal.app (较复杂)

如果你坚持使用原生 Terminal,需要手动添加触发器(Triggers)来捕获 Zmodem 的启动信号并调用 sz/rz,这相对繁琐且容易出错,不如直接使用 iTerm2 方便,这里不详细展开,因为 iTerm2 是更优选择。

第三步:使用 sz 命令发送文件到远程服务器

假设你已经通过 SSH 登录到了远程 Linux 服务器(ssh user@remote.server.com),并且该服务器也安装了 lrzsz 包(大多数 Linux 发行版默认安装或可通过包管理器如 yum install lrzszapt install lrzsz 轻松安装)。

  1. 在远程服务器的终端会话中:
    导航到你想要接收文件的目录(cd /tmp)。

  2. 在远程服务器的终端会话中,启动接收:
    输入命令:

    rz

    或者更常用的是使用 -y 选项(覆盖已存在文件)和 -e 选项(转义控制字符):

    rz -ye

    执行此命令后,远程服务器会进入等待接收文件的状态,并通常会显示一个类似 **B00000000000000 的提示符(具体样式可能因系统而异)。不要在远程终端输入任何其他命令。

  3. 在你的 macOS 本地:

    • 如果你使用的是 iTerm2,它会自动检测到远程发起的 Zmodem 接收请求(rz),并立即弹出一个文件选择对话框。
    • 在弹出的对话框中,浏览并选择你想要从 macOS 发送到远程服务器的一个或多个文件
    • 点击 OpenSend 按钮。
  4. 传输过程:
    文件传输将开始,你会在终端中看到传输进度(百分比、速度等),传输完成后,远程服务器的 rz 命令会自动退出,你将回到正常的 shell 提示符,文件已经保存在你执行 rz 命令时所在的远程目录中。

第四步:使用 sz 命令从远程服务器接收文件到 macOS

  1. 在远程服务器的终端会话中:
    导航到包含你想要发送的文件的目录(cd /path/to/files)。
    使用 sz 命令跟上你要发送的文件名(支持通配符 发送多个文件):

    sz file1.txt backup.tar.gz *.log

    同样,常用 -y-e 选项:

    sz -ye file1.txt backup.tar.gz *.log
  2. 在你的 macOS 本地:

    • 如果你使用的是 iTerm2,它会自动检测到远程发起的 Zmodem 发送请求(sz),并立即弹出一个对话框让你选择在 macOS 上保存文件的位置
    • 在弹出的对话框中,选择你想要保存文件的本地目录
    • 点击 SaveOK 按钮。
  3. 传输过程:
    文件传输将开始,你会在终端中看到传输进度,传输完成后,远程服务器的 sz 命令会自动退出,你将回到正常的 shell 提示符,文件已经保存到你选择的 macOS 本地目录中。

重要提示与常见问题解答 (FAQ)

  1. -y-e 选项是必须的吗?

    • -y强烈建议使用,它表示如果目标位置存在同名文件,则直接覆盖,如果不加 -y,遇到同名文件时传输会中断并询问,在自动化或脚本中尤其不便。
    • -e建议使用,它对文件中的控制字符进行转义,对于传输文本文件(如日志)更安全,避免特殊字符引起问题,传输纯二进制文件(如图片、压缩包)时影响不大,但加上也无妨,养成 rz -yesz -ye 的习惯通常是最佳实践。
  2. 为什么我输入 szrz 后没反应/报错?

    • 本地未安装 lrzsz 确保你已在 macOS 上通过 Homebrew 成功安装了 lrzsz (brew install lrzsz)。
    • 终端不支持/未配置 Zmodem: 这是最常见的原因!确保你使用的是 iTerm2 或已正确配置了 Terminal.app 的 Zmodem 触发器(推荐使用 iTerm2)。
    • 远程服务器未安装 lrzsz 在远程服务器上运行 which szwhich rz 检查,如果没有,使用服务器的包管理器安装(如 sudo yum install lrzszsudo apt install lrzsz)。
    • 连接问题: 确保 SSH 连接稳定,Zmodem 对网络中断敏感。
    • 命令拼写错误: 确认输入的是 szrz,不是 lsz 或其他。
  3. 传输大文件可靠吗?
    Zmodem 支持断点续传,理论上对大文件传输有帮助。在实际的 SSH 连接中使用 Zmodem 传输大文件(尤其是几百MB或GB级别)并不是最可靠或最高效的方式。 SSH 连接本身的不稳定(如网络波动、超时)可能导致 Zmodem 会话中断且难以恢复,对于大文件,更推荐使用 scprsync 命令,它们基于 SSH 协议,专为文件传输设计,更稳定高效。

  4. 安全吗?
    Zmodem 协议本身没有内置强加密,它运行在你已经建立的 SSH 加密通道之上,只要你的 SSH 连接是安全的(使用密钥认证或强密码),文件传输过程就是通过这个加密隧道进行的,是安全的,不要在未加密的连接(如普通 Telnet)上使用 Zmodem 传输敏感文件。

  5. sz/rzscp/sftp/rsync 有什么区别?我该用哪个?

    • sz/rz (Zmodem):
      • 优点: 交互式操作极其简单直观(尤其是在终端会话中临时传个文件),无需记住复杂的命令语法或指定远程路径,特别适合快速传输少量小文件。
      • 缺点: 对大文件或网络不稳定环境支持不够好;依赖终端模拟器的特殊支持;不如 scp/rsync 灵活(如递归传输目录)。
    • scp/sftp/rsync:
      • 优点: 基于 SSH,安全可靠;专门为文件传输设计,效率高,尤其适合大文件和批量传输;rsync 支持增量同步(只传输变化部分)、断点续传、递归目录传输等高级功能;不依赖特定终端功能,在任何 SSH 客户端都能用。
      • 缺点: 需要记住命令语法和路径(本地路径和远程路径)。
    • 选择建议:
      • 临时在已打开的 SSH 会话中传一两个小文件?sz/rz 最快捷。
      • 传输大文件、大量文件、需要递归传输目录、需要自动化脚本?绝对首选 scprsync
      • 需要图形化界面?可以使用支持 sftp 的客户端(如 Cyberduck, FileZilla, Transmit)。
  6. 企业环境限制:
    一些严格管理的企业网络或服务器环境可能出于安全策略考虑,禁用了 Zmodem 协议(即禁止使用 sz/rz),如果你发现无法使用,请咨询你的系统管理员,并转而使用 scpsftp

szrz 命令通过 Zmodem 协议,为在 macOS 终端与远程 Linux 服务器之间交互式地传输小文件提供了一种极其便捷的方式,其核心步骤是:

  1. 在 macOS 上使用 Homebrew 安装 lrzsz (brew install lrzsz)。
  2. 使用支持 Zmodem 的终端模拟器,强烈推荐 iTerm2(开箱即用)。
  3. 在远程服务器上确保也安装了 lrzsz
  4. 在远程会话中:
    • 发送文件到本地 macOS:运行 sz -ye 文件名
    • 接收来自本地 macOS 的文件:运行 rz -ye
  5. 在本地 iTerm2 弹出的对话框中选择文件(发送时)或保存位置(接收时)。

虽然 sz/rz 在特定场景下非常方便,但请记住对于大文件传输或自动化任务,scprsync 是更强大、更可靠的选择,根据你的具体需求选择最合适的工具。


引用说明:

  • lrzsz 项目信息可参考其历史仓库或相关文档 ( https://ohse.de/uwe/software/lrzsz.html – 注意:原主页可能已变更,Homebrew 是其当前在 macOS 上的主要维护来源)。
  • Zmodem 协议规范可参考相关 RFC 和文档 (RFC 1598 等,但技术性较强)。
  • iTerm2 官方网站: https://iterm2.com/
  • Homebrew 官方网站: https://brew.sh/
  • scp, sftp, rsync 命令的用法可通过 man scp, man sftp, man rsync 在终端查看手册页。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7934.html

(0)
酷番叔酷番叔
上一篇 2025年7月19日 11:05
下一篇 2025年7月19日 11:15

相关推荐

  • 安全U盘数据如何找回?

    安全U盘数据找回在数字化时代,U盘作为便携式存储设备,因其小巧、便捷的特性被广泛应用于数据传输和备份,由于误删除、格式化、病毒感染或硬件故障等原因,U盘数据丢失的情况时有发生,如何安全、高效地找回丢失的数据,同时避免二次损坏或隐私泄露,成为许多用户关注的焦点,本文将详细介绍安全U盘数据找回的方法、注意事项及常见……

    2025年11月28日
    4100
  • CAD快捷键为何必须修改?

    修改CAD快捷键可显著提升绘图效率,减少鼠标依赖,使常用命令触手可及,根据个人习惯或专业需求定制快捷键,能优化工作流,加快操作速度,减轻操作疲劳。

    2025年7月27日
    8600
  • 傲腾内存搭配服务器硬盘可行吗?兼容性及性能如何?

    傲腾内存(Optane Memory)与服务器硬盘的搭配是可行的,且在特定场景下能显著提升系统性能,但其搭配方式和效果需根据具体应用需求、硬件配置及软件环境综合考量,以下从技术原理、优势、适用场景及注意事项等方面展开详细分析,傲腾内存与服务器硬盘的技术特性傲腾内存基于3D XPoint存储介质,具有低延迟(接近……

    2025年10月29日
    6700
  • a八数码java

    八数码问题的Java实现与解析八数码问题(8-Puzzle)是一个经典的智力谜题,目标是通过滑动数字方块,将一个3×3的网格从初始状态调整为目标状态,网格中包含1至8的数字和一个空格,空格用于移动相邻的数字,该问题属于状态空间搜索问题,常用于算法教学和人工智能研究,数据结构与表示在Java中,八数码问题通常使用……

    2025年12月5日
    3900
  • 安全审计设备分哪几类?

    安全审计设备是保障信息系统安全的重要工具,通过对网络流量、系统日志、用户行为等数据进行监测与分析,帮助组织及时发现潜在威胁、合规性问题及内部风险,根据功能、部署方式及审计对象的不同,安全审计设备可划分为多个类别,以下从技术原理和应用场景出发,对其分类进行详细梳理,基于功能维度的分类安全审计设备按核心功能可分为日……

    2025年11月23日
    5600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信