Linux上傳下載神器之 lrzsz
在開發的過程中,經常遇到 需要在 Linux 和 Windows 之間上傳下載文件的情況
這時,一般都是使用 FTP 或者 WinSCP 工具進行上傳下載, 雖然也能解決問題,但是這些工具需要在本地安裝客戶端並進行配置之後才能使用
這裡介紹一款工具,它能秒級安裝,安裝即用,不需要任何的配置,就能方便快捷的在 Linux 和 Windows 之間傳輸文件
它就是Linux中上傳下載的工具 lrzsz
,這個工具使用了 XMODEM、YMODEM 和 ZMODEM 文件傳輸協議來實現文件的上傳和下載的,目前主流的SSH連接工具 ( SecureCRT、XShell 等 ) 都支援這些協議
安裝
在使用 lrzsz 之前需要先在Linux下安裝,它 大小只有幾百KB, 安裝是非常方便的, 基本秒級完成, 通過下面的命令就可以安裝
yum install -y lrzsz
安裝完成之後,輸入 sz --v
或者 rz --v
命令,如果有如下輸出,則表示安裝成功
[root@ecs-centos-7 ~]# sz --v
sz (lrzsz) 0.12.20
[root@ecs-centos-7 ~]# rz --v
rz (lrzsz) 0.12.20
設置上傳下載目錄
在使用rz/sz 命令之前,需要先在 SSH工具的設置上傳下載目錄,下面以 SecureCRT 為例來說明下
在 SecureCRT 中打開一個SSH會話後, 打開會話選項窗口,選擇 終端 -> 外觀 -> X/Y/Zmodem , 然後就可以設置上傳和下載目錄了, 如下圖所示
- 上傳目錄
當在 Linux 上執行 rz
命令之後,彈出選擇發送文件窗口時,默認選擇文件的目錄就是上面設置的上傳目錄
- 下載目錄
在 Linux 上執行 sz a.txt
命令之後,Linux 上的文件a.txt
默認的本地下載目錄就是上面設置的下載目錄
關於X/Y/Zmodem
- Xmodem
Xmodem 是一種古老的傳輸協議, 傳輸速度較慢,但由於使用了CRC錯誤偵測方法,傳輸的準確率可高達99.6%。
- Ymodem
這是Xmodem的改良版,使用了1024位區段傳送,速度比Xmodem要快
- Zmodem
Zmodem採用了串流式(streaming)傳輸方式,傳輸速度較快,而且還具有自動改變區段大小和斷點續傳、快速錯誤偵測等功能。這是目前最流行的文件傳輸協議。
上面幾種傳輸協議,目前Zmodem 是使用得最多的,下面介紹的 rz/sz 命令就是使用該傳輸協議的,命令中的 z 表示使用 Zmodem協議
將Win上文件上傳到Linux
在Linux終端中輸入 rz + 回車
,在彈出的對話框中選擇要上傳的文件,點擊添加,再確認,本地的文件就會上傳到終端當前所在的目錄中,上傳的文件名默認和本地的文件名一致
rz
支援一次上傳多個文件,只要選擇需要上傳文件的時候選擇多個文件即可
另外,rz上傳命令,如果Linux終端當前目錄已經存在同名文件了,那麼默認不會執行上傳,要 -y
覆蓋才可以
將Linux文件下載到Win上
把當前目錄下的 a.txt
下載到本地
[root@ecs-centos-7 tmp]# ls
a.txt
[root@ecs-centos-7 tmp]# sz a.txt
zmodem trl+C ȡ
100% 28 bytes 28 bytes/s 00:00:01 0 Errors
[root@ecs-centos-7 tmp]#
執行 sz a.txt
命令默認把 a.txt
下載到本地,下載到本地哪個目錄中,是在SSH連接工具中配置的,下載到本地的文件默認和命令中使用相同的文件名
下載進度、下載速度、用時、錯誤數會實時顯示在 Linux的終端會話上
sz
也支援一次下載多個文件到本地
[root@ecs-centos-7 tmp]# ls
a.txt b.txt
[root@ecs-centos-7 tmp]# sz a.txt b.txt
zmodem trl+C ȡ
100% 28 bytes 28 bytes/s 00:00:01 0 Errors
100% 11 bytes 11 bytes/s 00:00:01 0 Errors
[root@ecs-centos-7 tmp]# sz *.txt
zmodem trl+C ȡ
100% 28 bytes 28 bytes/s 00:00:01 0 Errors
100% 11 bytes 11 bytes/s 00:00:01 0 Errors
[root@ecs-centos-7 tmp]#
上面的例子中,Linux終端當前目錄下有 a.txt 、b.txt
兩個文件,執行 sz a.txt b.txt
或者 sz *.txt
命令都可以實現批量下載文件到本地
注意
使用 rz/sz 有幾點需要注意的地方
-
Linux 上啟動了 tmux 之後,無法使用 rz/sz 命令,這是由於 tmux 不支援Zmodem 協議,如果想要使用 rz/sz 的話只能先退出 tmux, 關於 tmux 可以參考 再也不用擔心 SSH 斷開了 – tmux 命令
-
rz/sz 不支援超過4G的文件,上傳下載4G及以上大小的文件只能由 FTP 或者 WinScp 等工具來解決了
小結
本文介紹了文件上傳下載的工具 lrzsz,它體積小,使用起來方便快捷,學會使用它,會顯著的提高日常工作效率