Skip to content

Instantly share code, notes, and snippets.

@meowoodie
Created October 8, 2015 10:43
Show Gist options
  • Save meowoodie/4bcf6d6ae81727b618bf to your computer and use it in GitHub Desktop.
Save meowoodie/4bcf6d6ae81727b618bf to your computer and use it in GitHub Desktop.

Set rz and sz on Mac

There are a mess of troubles in sending and receiving files from my macbook to dev server, since I had no permission to excute command scp on dev server. Here is a lightweight, quick, and convenience tools which related with ssh, called lrzsz. lrzsz is a unix communication package providing the XMODEM, YMODEM, ZMODEM file transefer protocol which usually has been already installed in most of servers.

Prerequisites

  • iTerm2 is necessary. Here is the official website.
  • Install lrzsz on your mac:
sudo brew install lrzsz

Set trigger for iTerm2

  • First you should download the scripts from ZModem integration for iTerm 2, and save them in /usr/local/bin/
  • Set up two triggers in iTerm2's [preference] -> [profile] -> [advanced] -> [triggers] -> [edit]
	Regular expression: rz waiting to receive.\*\*B0100
    Action: Run Silent Coprocess
    Parameters: /usr/local/bin/iterm2-send-zmodem.sh

    Regular expression: \*\*B00000000000000
    Action: Run Silent Coprocess
    Parameters: /usr/local/bin/iterm2-recv-zmodem.sh

How to use it

rz

  • Run "rz" on dev server. Then it would prompt that something like "rz waiting to receive." and create a new window titled "choose a file to send".
  • Choose the file you need to receive from your laptop.

sz

  • run "sz /path/file" to send server's file to your laptop.
@geekscrapy
Copy link

You dont need lrzsz on the remote host do you?

@dalei2019
Copy link

ZModem integration for iTerm 2 link is 404

@axiaoxin

yes , source link is 404!
I downloaded a few months ago,checkout my gist link.
send script:https://gist.github.com/dalei2019/f264f4e2fa04892da66435b174ef1a21
recv script:https://gist.github.com/dalei2019/e6ba610a831d7c7a7081672bf10869b6

@axiaoxin
Copy link

thanks you @dalei2019 , I figured it out on this page https://segmentfault.com/a/1190000012166969

ps. 你贴的这个代码 第7行建议删了

@dalei2019
Copy link

thanks you @dalei2019 , I figured it out on this page https://segmentfault.com/a/1190000012166969

ps. 你贴的这个代码 第7行建议删了

MD,没注意,已删除第7行。过几天我重写一个。

@qixiaobo
Copy link

I have a lot of profiles~ How to batch add this?

@qixiaobo
Copy link

@utf7
Copy link

utf7 commented Dec 2, 2020

这个有问题,rz 一个大文件(其实也不大,比如200M)就会OOM ,不知道大家有没有遇到过?怎么解决的?

@xu20160924
Copy link

If someone faces the problem of don't work, maybe it conflicts with expect.

@J00MZ
Copy link

J00MZ commented Jun 9, 2022

Current versions of lrzsz installed by brew install lrzszwill install to /opt/homebrew/bin/
So make sure to change /usr/local/bin to /opt/homebrew/bin/ in the send/receive scripts linked above

@zhu3pang
Copy link

zhu3pang commented Nov 4, 2022

@xu20160924 Hi, Is there a solution for expect?

@justinlawrence
Copy link

Current versions of lrzsz installed by brew install lrzszwill install to /opt/homebrew/bin/ So make sure to change /usr/local/bin to /opt/homebrew/bin/ in the send/receive scripts linked above

Thanks @J00MZ, this helped me!

@justinlawrence
Copy link

It would be helpful to add one more step to the instructions:

chmod +x /usr/local/bin/iterm*

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment