rz,sz命令傳輸文件,比使用scp要方便得多,特別是在圖形界面打開終端,SSH登陸到遠程機器需要傳輸文件的時候。但是MacOS里Terminal.app并不支持Zmodel傳輸。好在iTerm2具備較強的擴展性可以通過簡單的配置支持Zmodem傳輸。
Zmodem 是跨平臺的文件傳輸協議,可以很方便的在不同的操作系統之間接傳輸文件。lzrsz 是該協議的實現方式:https://ohse.de/uwe/software/lrzsz.html 。安裝后,在 Mac 的 ITerm2 中用 SSH 登陸遠程的 Linux 主機,然后用 rz 、sz 命令傳輸文件。
1. 安裝 lrzsz
在 Ubuntu 中安裝:
$ sudo apt-get install lrzsz
在 CentOS 中安裝:
$ yum -y install lrzsz
在 Mac 中安裝:
$ brew install lrzsz
2. 下載腳本文件
從這里下載。復制到 /usr/local/bin/,并增加執行權限。
$ git clone https://github.com/mmastrac/iterm2-zmodem.git
$ cp iterm2-zmodem/iterm2-send-zmodem.sh /usr/local/bin/iterm2-send-zmodem.sh
$ cp iterm2-zmodem/iterm2-recv-zmodem.sh /usr/local/bin/iterm2-recv-zmodem.sh
$ chmod +x /usr/local/bin/iterm2-send-zmodem.sh
$ chmod +x /usr/local/bin/iterm2-recv-zmodem.sh
3. 配置 iTerm2
iTerm2 -> Profiles -> Default ->Advanced -> Triggers -> edit
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
4. 使用
發送文件:
- 登錄服務器
$ rz
- 在彈窗中從本地選擇文件
- 確定,等待
接收文件:
- 登錄服務器
$ sz filename1 filename2 ... filenameN
- 在彈窗中選擇接收的本地目錄
- 確定,等待
經測試,只有本地 vagrant 好用。遠程服務器都不行,求解。