美文网首页程序员
OSX下使用lrzsz传输文件

OSX下使用lrzsz传输文件

作者: AlgoPeek | 来源:发表于2019-03-02 16:36 被阅读75次

    写在前面

    在mac环境下,我们经常会使用 iTerm2终端连接远程服务器,也经常会有本机和远程服务器之间进行文件共享的需求。这个时候lrzsz就派上用场了。

    lrzsz是unix下的开源软件包,支持XMODEM, YMODEM ZMODEM文件传输协议。本文将会展示如何将lrzsz集成到iTerm2终端中,通过szrz命令和远程服务器传输文件。
    其中,s表示sendr表示recieve,z表示使用的协议为ZMODEM。

    安装步骤

    1. 安装lrzsz

    • 最简单的方式是通过brew安装:brew install lrzsz
    • 也可以通过下载源码安装。

    2. 下载iterm2-zmodem支持脚本

    • 克隆代码库:git clone https://github.com/mmastrac/iterm2-zmodem.git
    • iterm2-send-zmodem.shiterm2-recv-zmodem.sh 脚本拷贝到目录/usr/local/bin/

    3. 在iTerm2中配置Trigger

    • iTerm2 > Preference > Profiles > Advanced > Triggers > Edit
    • 增加rz和sz的配置如下:
        Regular expression: rz waiting to receive.\*\*B0100
        Action: Run Silent Coprocess
        Parameters: /usr/local/bin/iterm2-send-zmodem.sh
        Instant: checked
    
        Regular expression: \*\*B00000000000000
        Action: Run Silent Coprocess
        Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
        Instant: checked
    

    配置完成后如下:

    更多关于Trigger的配置请参考这里

    1. 远程服务器安装lrzsz
      使用相关包管理工具安装lrzsz,如在centos下使用yum安装:yum -y install lrzsz

    演示

    1. 本地上传文件到远程服务器
      上传文件到远程服务器比较简单,在iTerm2登录远程服务器后,直接在命令行输入命令:rz,iTerm2收到带有数据匹配到 rz waiting to receive.**B0100,执行脚本/usr/local/bin/iterm2-send-zmodem.sh,调起Finder将选择的文件上传至远程服务器。
    1. 远程服务器下载文件到本地
      从远程服务器下载文件到本地也很简单,键入命令:sz filename1 filename2 … filenameN,当iTerm2收到数据匹配到**B00000000000000时,执行脚本/usr/local/bin/iterm2-recv-zmodem.sh,调起Finder,将文件下载到选择目录。
    image.png

    更多参考

    1. https://github.com/mmastrac/iterm2-zmodem
    2. https://www.ohse.de/uwe/software/lrzsz.html
    3. https://www.iterm2.com/documentation-triggers.html

    相关文章

      网友评论

        本文标题:OSX下使用lrzsz传输文件

        本文链接:https://www.haomeiwen.com/subject/zbaeuqtx.html