scp -r 传输含有大量小文件的文件夹( 例如 .git )时,速度超级慢,一般都要先 tar 打包一下,传输完再 tar 解开。
trzsz ( trz / tsz ) v1.1.5 新版本将“tar 打包和解开”内置了,在用户无感的情况下大大提高了传输速度。
安装方法
-  
Ubuntu 可用 apt 安装
sudo apt install trzszsudo 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 trzszsudo 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 安装
sudo yum install trzsz-  
国内推荐使用 wlnmp 源,安装 trzsz 只需要添加 wlnmp 源( 配置 epel 源不是必须的 ),以 CentOS 为例:
sudo rpm -ivh https://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm sudo yum install trzsz -  
也可使用 gemfury 源( 只要网络通,所有操作系统通用 )
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 
 -  
 -  
ArchLinux 可用 yay 安装
yay -S trzszyay -Syu yay -S trzsz -  
MacOS 可用 homebrew 安装
brew install trzsz-gobrew update brew install trzsz-go -  
Windows 可用 scoop / winget / choco 安装
scoop install trzsz/winget install trzsz/choco install trzszscoop install trzszwinget install trzszchoco install trzsz -  
用 Go 直接安装( 要求 go 1.20 以上 )
go install github.com/trzsz/trzsz-go/cmd/...@latestgo install github.com/trzsz/trzsz-go/cmd/trz@latest go install github.com/trzsz/trzsz-go/cmd/tsz@latest go install github.com/trzsz/trzsz-go/cmd/trzsz@latest安装后,
trzsz程序一般位于~/go/bin/目录下( Windows 一般在C:\Users\your_name\go\bin\)。 -  
可从 Releases 中直接下载适用的版本
或者用 Go 编译( 要求 go 1.20 以上 )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 trzsz0 
使用方法
在本地电脑使用
-  
在命令前添加
trzsz,就可以支持 trzsz (trz /tsz) 上传和下载了,如: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 trzsz1 -  
在命令前添加
trzsz --dragfile,就可以启用拖拽上传功能,如: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 trzsz2 
在跳板机上使用
-  
如果在跳板机上使用
tmux,则需要再使用trzsz --relay ssh登录远程服务器,如: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 trzsz3 
在服务器上使用
-  
与 lrzsz (rz /sz) 类似,使用
trz命令上传文件,使用tsz /path/to/file命令下载文件。 -  
有关
trzsz更详细的文档,请查看 https://trzsz.github.io/cn/。 
使用建议
-  
为了使用方便,可以设置
alias,例如alias ssh="trzsz ssh",又或者alias ssh="trzsz -d ssh"支持拖文件上传。 -  
如果在本地电脑使用
tmux,先不带trzsz运行tmux,然后再使用trzsz ssh登录远程服务器。 
可配置项
trzsz 使用的配置文件是 ~/.trzsz.conf( Windows 是 C:\Users\your_name\.trzsz.conf )。注意路径必须包含 / 结尾,如:
 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 4  -  
如果
DefaultUploadPath不为空,上传选择文件时会默认打开此目录。 -  
如果
DefaultDownloadPath不为空,下载文件时会自动下载到此目录( 不需要再弹窗选择路径 )。 
常见问题
-  
如果 MSYS2 或 Git Bash 遇到错误
The handle is invalid。- 在 
trzsz前面加上winpty即可,如winpty trzsz ssh x.x.x.x这样登录服务器。 Git Bash已默认安装有winpty,MSYS2需要手工安装pacman -S winpty。
 - 在 
 -  
在 MSYS2 和 Cygwin 等,不支持直接使用
/usr/bin/ssh那个ssh,可能会传输失败。需要使用 Windows 自带的 OpenSSH。MSYS2中用法winpty trzsz /c/Windows/System32/OpenSSH/ssh.exe x.x.x.x。Cygwin中用法trzsz "C:\Windows\System32\OpenSSH\ssh.exe" x.x.x.x。- ⭐ 推荐使用 trzsz-ssh ( tssh ),
tssh等同于trzsz ssh。 
 -  
拖文件或目录到终端后,没有自动上传?
- 检查 
ssh登录时有没有加上--dragfile选项,如trzsz --dragfile ssh x.x.x.x。 - 检查服务器上有没有安装 trzsz,
trz应在某个PATH路径下。 - 在 Windows 中,检查标题有没有
管理员三个字,以管理员运行时可能会由于 UAC 设置的原因导致拖不了文件。 - 在 Windows Terminal 中,需要将文件或目录拖到左上角,显示
粘贴文件路径时再放开。 - 在 Windows 的 
cmd和PowerShell中,一次只能拖一个文件或目录,拖多个也只有鼠标正对着的那个是生效的。 
 - 检查 
 
开发指引
想要让你自己开发的 ssh 客户端支持 trzsz ?请参考 go ssh client example。
录屏演示
在 windows 的 cmd 使用示例:
在 Ubuntu 原生终端使用示例:
在 Mac 原生终端拖文件上传的示例:





		
		

还没有评论,来说两句吧...