使用 rz/sz(ZModem 協議)傳輸數 MB 以上的二進位檔案時,Shell 頻繁崩潰或傳輸中斷。小檔案、文字檔多無問題。核心原因是控制字元(XON/XOFF、DLE、CR-@-CR、Ctrl-X)在傳輸過程中被終端機或網路設備攔截解析,導致協議幀不同步。
在 rz/sz 指令加入 -e 或 --escape 參數:
# 接收檔案(上傳到伺服器)
rz -e
# 發送檔案(從伺服器下載)
sz -e filename
-e, --escape
Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.
開啟後,發送端會將所有控制字元轉義為雙位元組序列,接收端自動還原,避免被中間設備誤判為流控或指令字元。
md5sum 一致、Shell 不崩潰。~/.bashrc 設定別名:alias rz='rz -e'alias sz='sz -e'scp、sftp、rsync 等基於 SSH 的傳輸方式,可靠性更高且支援斷點續傳。