考虑到 LapTop -> Host 1 -> Host 2 -> Docker -> TMUX,使用scp或sftp命令不方便;使用rz和sz命令就会方便很多,但是却又与 TMUX 不兼容(备注:Tmux是一个终端复用工具,允许用户在一个终端窗口中同时运行多个终端会话或者程序。它提供了会话(session)、窗口(window)和面板(panel)等多种功能,可以帮助用户更高效地管理终端环境。)
trzsz(trz / tsz)是一个基于 Python 编程语言开发且兼容 TMUX 的文件传输工具,类似于 lrzsz(rz / sz),并且 trzsz 有进度条、支持目录传输和文件拖动上传、支持 iTerm2、Tabby、Electerm、TTYD 终端。
trzsz-go 是基于 Go 语言实现的的 trzsz,它不需要依赖终端的支持,即可上传和下载文件。
trzsz-js 支持 Windows 本地的 cmd、PowerShell 等;支持目录trz -d上传和tsz -d xxx下载;支持拖动文件及目录直接上传到服务器。
安装trzsz
Ubuntu 用 apt 安装:
# sudo apt update && sudo apt install software-properties-common
# sudo add-apt-repository ppa:trzsz/ppa && sudo apt update
# sudo apt install trzsz
Debian 用 apt 安装:
# sudo apt install curl gpg
# curl -s 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x7074ce75da7cc691c1ae1a7c7e51d1ad956055ca' \
| gpg --dearmor -o /usr/share/keyrings/trzsz.gpg
# echo 'deb [signed-by=/usr/share/keyrings/trzsz.gpg] https://ppa.launchpadcontent.net/trzsz/ppa/ubuntu jammy main' \
| sudo tee /etc/apt/sources.list.d/trzsz.list
# sudo apt update
# sudo apt install trzsz
Linux 用 yum 安装:
echo '[trzsz]
name=Trzsz Repo
baseurl=https://yum.fury.io/trzsz/
enabled=1
gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo
sudo yum install trzsz
Mac 用 homebrew 安装:
brew update
brew install trzsz-go
Windows 用 scoop 安装:
scoop bucket add extras
scoop install trzsz
或从 GitHub 下载源代码安装:
git clone https://github.com/trzsz/trzsz-go.git
cd trzsz-go
make
sudo make install
使用 trzsz
trz 将文件上传到远程服务器的用法:
trz [-h] [-v] [-q] [-y] [-b] [-e] [-d] [-B N] [-t N] [path]
- -h:帮助信息并退出
- -v:显示版本并退出
- -q:传输文件时,隐藏进度条
- -y:如存在相同的文件名,则直接覆盖现有文件
- -b:二进制传输模式,对于压缩包、图片、影音传输会较快
- -e:转义所有已知的控制字符
- -d:上传、下载指定的文件或文件夹
- -b:设置最大缓冲区上限,会自动根据网速选择合适的缓冲区大小,但不会超过此上限。(默认值:10M)
- -t:设置超时秒数(默认值:20秒)在超时时间内,如无法传完一个缓冲区大小的数据,则会报错并退出。设置为 0 或负数时,则永不超时。
- path:保存文件的路径。(默认为:当前目录)
trz 不带任何参数,则将所要上传的文件到当前目录下,也可以指定所要上传到的目录。
# trz
# trz /opt
在本地使用trzsz ssh IP地址登录服务器,或使用trzsz -d ssh IP地址登录,即可支持拖动文件和文件夹上传。
tsz 从远程服务器下载文件的用法:
tsz [-h] [-v] [-q] [-y] [-b] [-e] [-d] [-B N] [-t N] file [file ...]
- file:要下载的文件
tsz 可以下载一个或多个文件,可使用相对路径或绝对路径,也可使用通配符,下载指定文件。
# tsz file1 file2 file3
上述,大家可根据trz和tsz上传下载的方式结合实际场景进行运用,体验一下rz和sz的替代品。
除此之外,trzsz 中文文档还提供了一些常见异常问题处理方法。
References
trzsz:https://github.com/trzsz/trzsz
trzsz-go:https://github.com/trzsz/trzsz-go
trzsz-js:https://github.com/trzsz/trzsz.js
trzsz 中文文档:https://trzsz.github.io/cn/