由于默認的終端/阿里云自帶的連接,無法實現(xiàn)lrzsz的rz+sz,因此需要iterm2
1. 安裝iterm2
2. 本地安裝lrzsz
brew install lrzsz?
3. 切換到 /usr/local/bin/ 目錄底下
cd /usr/local/bin
4. 在這個目錄底下,新建兩個文件
? ? iterm2-send-zmodem.sh/iterm2-recv-zmodem.sh
? ? 在github中可以參考:https://github.com/aikuyun/iterm2-zmodem
? ? 其中:
? ??iterm2-send-zmodem.sh
#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain
osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
????FILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
else
????FILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
fi
if [[ $FILE = "" ]]; then
????echo Cancelled.
????# Send ZModem cancel
????echo -e \\x18\\x18\\x18\\x18\\x18
????sleep 1
????echo
????echo \# Cancelled transfer
else
????/usr/local/bin/sz "$FILE" --escape --binary --bufsize 4096
????sleep 1
????echo
????echo \# Received "$FILE"
fi
? ? 其中:
????iterm2-recv-zmodem.sh
#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain
osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
????FILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
else
????FILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
fi
if [[ $FILE = "" ]]; then
????echo Cancelled.
????# Send ZModem cancel
????echo -e \\x18\\x18\\x18\\x18\\x18
????sleep 1
????echo
????echo \# Cancelled transfer
else
????cd "$FILE"
????/usr/local/bin/rz --rename --escape --binary --bufsize 4096
????sleep 1
????echo
????echo
????echo \# Sent \-\> $FILE
fi
5. 配置iterm2
????路徑選擇:iTerm2 ->?Profiles > Default > Advanced > Triggers > Edit
????配置內(nèi)容:
? ? # 發(fā)送 sz
? ? Regular expression: rz waiting to receive.\*\*B0100 (注意這里是這樣)
? ? Action: Run Silent Coprocess
? ? Parameters: /usr/local/bin/iterm2-send-zmodem.sh? ? # 接收 rz
? ? Regular expression:\*\*B00000000000000
? ? Action: Run Silent Coprocess
? ? Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
? ? 配置效果如圖:

6. 修改權(quán)限
? ??cd /usr/local/bin/
????chmod -x iterm2-send-zmodem.sh
????chmod -x iterm2-recv-zmodem.sh
7. 軟連接執(zhí)行文件
????$ ln -s /opt/homebrew/bin/lrz /usr/local/bin/rz
? ? $ ln -s /opt/homebrew/bin/lsz /usr/local/bin/sz