rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
优势就是不用再开一个sftp工具登陆上去上传下载文件。
近期在mac上经过终端链接服务器,想经过rz和sz实现快速简单的文件上传下载功能html
iTerm2是Mac OS下的一款终端利器,相对于系统自带的终端软件具备不少更好的功能和扩展。官方地址为https://www.iterm2.com
安装iTerm2主要有下面两种方法:git
下载的是压缩文件,解压后是执行程序文件,你能够直接双击,或者直接将它拖到 Applications 目录下。github
homebrew是mac下的一个包管理器,虽然苹果官方没有相关说明,不少的软件包能够利用homebrew轻松的在命令行进行安装,homebrew的安装可参考官方网站或某博客,安装后最好将软件源替换为国内源,例如阿里云或者清华大学源正则表达式
脚本文件在iterm2的官方github仓库上,地址为:
https://github.com/mmastrac/iterm2-zmodem
脚本下载后须要放在mac的/usr/local/bin目录下,而且添加可执行权限服务器
127:~ ssgeek$ cd /usr/local/bin/ 127:bin ssgeek$ wget -c https://raw.githubusercontent.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh 127:bin ssgeek$ wget -c https://raw.githubusercontent.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.sh 127:bin ssgeek$ chmod +x iterm2-recv-zmodem.sh 127:bin ssgeek$ chmod +x iterm2-send-zmodem.sh
经过homebrew安装,执行brew install lrzsz安装便可网络
此步骤是关键步骤,打开iTerm2终端,依次点击"Preference"——>"Profiles"——>"Default"——>"Advanced"——>"Edit"
添加两个触发器Triggers,意味着在iTerm2中执行某个命令或输出某个结果(归根到底仍是脚本)时,会根据定义的触发器触发某个动做
触发器中须要定义到Regular Expression
正则表达式、Action
动做、Parameters
参数这三项
正则表达式设置方法:
打开终端,分别输入rz命令查看输出ide
127:~ honganrong$ rz rz waiting to receive.**B0100000023be50
输入sz命令,查看输出工具
127:~ honganrong$ sz Desktop/a.txt **B00000000000000
将输出rz waiting to receive.**B0100000023be50
和**B00000000000000
加上转义符号后填写至Regular Expression
下便可,也可进一步加上正则表达式简写后再填写,为了精确起见,保留原样便可
Action
选择Run Silent Coprocess...
,Parameters
填写的就是以前下载的两个脚本,同时还须要勾选Instant
选项,表示当即执行触发器
关于参数和正则表达式的对应关系能够这样理解:咱们利用rz
上传和sz
下载文件通常都是经过终端登陆到Linux
服务器上以后执行的:在服务器上执行rz
上传,那么对于Mac电脑来讲,它就是须要从本地发送一个文件到服务器,即send
;一样的,在服务器上执行sz
下载,那么对于mac电脑来讲,它就是须要从服务器接收一个文件到本地,即receive
,简写为recv
,配置好以后的最终效果以下:
测试
打开终端,经过终端登陆到服务器,再分别执行rz和sz命令,会自动弹出一个界面选择要上传文件所在的位置或选择下载文件的保存位置,大功告成
sz下载文件
rz上传文件
网站
sz命令
用途说明:sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次能够传送一个或多个文件。相对应的从本地上传文件到Linux服务器,可使用rz命令。
经常使用参数:
-a 以文本方式传输(ascii)。 -b 以二进制方式传输(binary)。 -e 对控制字符转义(escape),这能够保证文件传输正确。 若是可以肯定所传输的文件是文本格式的,使用 sz -a files 若是是二进制文件,使用 sz -be files
rz命令
-b 以二进制方式,默认为文本方式。(Binary (tell it like it is) file transfer override.) -e 对全部控制字符转义。(Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.)
若是要保证上传的文件内容在服务器端保存以后与原始文件一致,最好同时设置这两个标志,以下所示方式使用:
rz -be
此命令执行时,会弹出文件选择对话框,选择好须要上传的文件以后,点肯定,就能够开始上传的过程了。上传的速度取决于当时网络的情况。 若是执行完毕显示“0错误”,文件上传就成功了,其余显示则表示文件上传出现问题了。