Mac下使用rz、sz远程上传下载文件的配置记录

rz、sz是linux系统上传和下载文件的工具,非常好用!需要注意的是:单独使用rz进行上传文件会有两个问题:上传中断、上传文件变化(md5不同),解决办法是上传是用rz -be,并且去掉弹出的对话框中“Upload files as ASCII”前的勾选(这是rz上传的坑:在对话框内选择上传文件时,记住不要勾选下方的"发送文件到ASCII",否则上传的文件会有问题!) -a, –ascii -b, –binary 用binary的方式上传下载,不解释字符为ascii -e, –escape 强制escape 所有控制字符,比如Ctrl+x,DEL等

rar,gif等文件文件采用 -b 用binary的方式上传。 文件比较大而上传出错的话,采用参数 -e 如果用不带参数的rz命令上传大文件时,常常上传一半就断掉了,很可能是rz以为上传的流中包含某些特殊控制字符,造成rz提前退出。

所以在使用rz命令进行上传文件的时候,最好使用"rz -be"命令或"rz -abe",在Mac的terminal终端里默认是不能使用这两个工具的,需要安装第三方的iTerm2终端。操作如下:

1)下载安装iTerm2 下载地址:http://iterm2.com/downloads.html  (下载zip格式的,直接解压,然后双击iTerm安装就行)

kevindeMacBook-Pro:Downloads kevin$ unzip iTerm2-3_1_beta_10.zip

 2)下载安装lrzsz

先安装brew
kevindeMacBook-Pro:Downloads kevin$ xcode-select --install
kevindeMacBook-Pro:Downloads kevin$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)";

接着安装rz、sz
kevindeMacBook-Pro:Downloads kevin$ brew install lrzsz
-----------------------------------------------------------------------------------------------------
上面安装命令最好别加sudo,否则可能报错(即不要在root下执行):
Error: Running Homebrew as root is extremely dangerous and no longer supported. As Homebrew does not
-----------------------------------------------------------------------------------------------------
kevindeMacBook-Pro:Downloads kevin$ ls -l /usr/local/bin/rz 
lrwxr-xr-x  1 kevin  admin  30  9 19 10:12 /usr/local/bin/rz -> ../Cellar/lrzsz/0.12.20/bin/rz
kevindeMacBook-Pro:Downloads kevin$ ls -l /usr/local/bin/sz
lrwxr-xr-x  1 kevin  admin  30  9 19 10:12 /usr/local/bin/sz -> ../Cellar/lrzsz/0.12.20/bin/sz

3)下载并安装automatic zmoderm for iTerm2

kevindeMacBook-Pro:Downloads kevin$ cd /usr/local/bin/
kevindeMacBook-Pro:bin kevin$ wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.sh
kevindeMacBook-Pro:bin kevin$ wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh
kevindeMacBook-Pro:bin kevin$ ls -l iterm*
-rw-r--r--@ 1 kevin  admin  1177  9 19 10:28 iterm2-recv-zmodem.sh
-rw-r--r--@ 1 kevin  admin  1116  9 19 10:28 iterm2-send-zmodem.sh

由于文件属性后面带@符号,需要去掉,否则会有问题!
kevindeMacBook-Pro:bin kevin$ cat iterm2-recv-zmodem.sh > iterm2-recv-zmodem.sh.bak
kevindeMacBook-Pro:bin kevin$ cat iterm2-send-zmodem.sh > iterm2-send-zmodem.sh.bak
kevindeMacBook-Pro:bin kevin$ rm -f iterm2-recv-zmodem.sh
kevindeMacBook-Pro:bin kevin$ rm -f iterm2-send-zmodem.sh
kevindeMacBook-Pro:bin kevin$ mv iterm2-recv-zmodem.sh.bak iterm2-recv-zmodem.sh
kevindeMacBook-Pro:bin kevin$ mv iterm2-send-zmodem.sh.bak iterm2-send-zmodem.sh
kevindeMacBook-Pro:bin kevin$ ls -l iterm*
-rw-r--r--  1 kevin  admin  1177  9 19 10:31 iterm2-recv-zmodem.sh
-rw-r--r--  1 kevin  admin  1116  9 19 10:31 iterm2-send-zmodem.sh
kevindeMacBook-Pro:bin kevin$ chmod 755 iterm*
kevindeMacBook-Pro:bin kevin$ ls -l iterm*
-rwxrwxrwx  1 kevin  admin  1177  9 19 10:31 iterm2-recv-zmodem.sh
-rwxrwxrwx  1 kevin  admin  1116  9 19 10:31 iterm2-send-zmodem.sh

4)添加iTerm2 trigger。打开iTerm2,依次设置:iTerm2 --> Profiles --> Open Profiles --> Edit Profiles --> Advanced --> Edit Trigger

上面iTerm2 trigger的配置项需要添加两个,具体填写信息如下:

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

5)如上配置后,就可以在iTerm2终端里使用rz、sz进行上传下载操作了。(注意只能在iTrem2终端里使用,在iTrem2终端里跳转连接的远程机器也可以使用,不能在默认自带的terminal终端里。所以,后续在Mac下就用iTerm2代替默认的terminal终端吧,或者两者一起用。上传下载需求的时候就用iTerm2)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ken的杂谈

ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

ASP.NET Core 默认集成了DI。所有官方模块的引入都要使用DI的方式引入。

1192
来自专栏贺嘉的专栏

如何用Baas快速在腾讯云上开发小程序之系列2:搭建Phabricator开发管理平台

如何用Baas快速在腾讯云上开发小程序-系列2:搭建Phabricator开发管理平台,步骤包括上传 SSL/TLS 证书、创建 Phabricator 容器、...

9380
来自专栏程序员与猫

ASP.NET Core依赖注入解读&使用Autofac替代实现

标签: 依赖注入 Autofac ASPNETCore 1. 前言 关于IoC模式(控制反转)和DI技术(依赖注入),我们已经见过很多的探讨,这里就不再赘述了。...

3248
来自专栏大壮

mac 配置SSH

2976
来自专栏葡萄城控件技术团队

WPF的消息机制(一)- 让应用程序动起来

前言 谈起“消息机制”这个词,我们都会想到Windows的消息机制,系统将键盘鼠标的行为包装成一个Windows Message,然后系统主动将这些Window...

1939
来自专栏Jackson0714

【解决方案】VS2013外部工具中添加ildasm.exe

3256
来自专栏猛牛哥的博客

一键搭建JetBrains系列软件激活服务器

8372
来自专栏用户2442861的专栏

Notepad++ 更换主题

https://github.com/ajwitte/textmate-goodies

7811
来自专栏逸鹏说道

.NET跨平台之旅:在Linux上以本地机器码(native)运行ASP.NET Core站点

在将“.NET跨平台之旅”示例站点 about.cnblogs.com 从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0 (博文链接)之...

2889
来自专栏林德熙的博客

从以前的项目格式迁移到 VS2017 新项目格式 必须删除必须修改添加文件项目引用引用包删除多余文件输入注释多个框架使用条件判断迁移 WPF 项目

以前的项目格式使用的是 csproj 的格式,但是 .net core 支持使用 project.json 格式的项目文件,后来还是决定不使用这个格式。 VS2...

6032

扫码关注云+社区