trzsz-go文件傳輸工具
trzsz (trz /tsz) 是一個(gè)兼容 tmux 的文件傳輸工具,和 lrzsz ( rz / sz ) 類(lèi)似,并且有進(jìn)度條,支持目錄傳輸,支持拖動(dòng)上傳。
安裝方法
-
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-
國(guó)內(nèi)推薦使用 wlnmp 源,安裝 trzsz 只需要添加 wlnmp 源( 配置 epel 源不是必須的 ),以 CentOS 為例:
sudo rpm -ivh https://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm sudo yum install trzsz -
也可使用 gemfury 源( 只要網(wǎng)絡(luò)通,所有操作系統(tǒng)通用 )
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 以上 )git clone https://github.com/trzsz/trzsz-go.git cd trzsz-go make sudo make install
使用方法
在本地電腦使用
-
在命令前添加
trzsz,就可以支持 trzsz ( trz / tsz ) 上傳和下載了,如:trzsz bash trzsz PowerShell trzsz ssh x.x.x.x -
在命令前添加
trzsz --dragfile,就可以啟用拖拽上傳功能,如:trzsz -d ssh x.x.x.x trzsz --dragfile ssh x.x.x.x
在跳板機(jī)上使用
-
如果在跳板機(jī)上使用
tmux,則需要再使用trzsz --relay ssh登錄遠(yuǎn)程服務(wù)器,如:trzsz ssh jump_server tmux trzsz --relay ssh remote_server
在服務(wù)器上使用
-
與 lrzsz ( rz / sz ) 類(lèi)似,使用
trz命令上傳文件,使用tsz /path/to/file命令下載文件。 -
有關(guān)
trzsz更詳細(xì)的文檔,請(qǐng)查看 https://trzsz.github.io/cn/。
使用建議
-
為了使用方便,可以設(shè)置
alias,例如alias ssh="trzsz ssh",又或者alias ssh="trzsz -d ssh"支持拖文件上傳。 -
如果在本地電腦使用
tmux,先不帶trzsz運(yùn)行tmux,然后再使用trzsz ssh登錄遠(yuǎn)程服務(wù)器。
可配置項(xiàng)
trzsz 使用的配置文件是 ~/.trzsz.conf( Windows 是 C:\Users\your_name\.trzsz.conf )。注意路徑必須包含 / 結(jié)尾,如:
DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/
-
如果
DefaultUploadPath不為空,上傳選擇文件時(shí)會(huì)默認(rèn)打開(kāi)此目錄。 -
如果
DefaultDownloadPath不為空,下載文件時(shí)會(huì)自動(dòng)下載到此目錄( 不需要再?gòu)棿斑x擇路徑 )。
常見(jiàn)問(wèn)題
-
如果 MSYS2 或 Git Bash 遇到錯(cuò)誤
The handle is invalid。- 在
trzsz前面加上winpty即可,如winpty trzsz ssh x.x.x.x這樣登錄服務(wù)器。 -
Git Bash已默認(rèn)安裝有winpty,MSYS2需要手工安裝pacman -S winpty。
- 在
-
在 MSYS2 和 Cygwin 等,不支持直接使用
/usr/bin/ssh那個(gè)ssh,可能會(huì)傳輸失敗。需要使用 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。
-
-
拖文件或目錄到終端后,沒(méi)有自動(dòng)上傳?
- 檢查
ssh登錄時(shí)有沒(méi)有加上--dragfile選項(xiàng),如trzsz --dragfile ssh x.x.x.x。 - 檢查服務(wù)器上有沒(méi)有安裝 trzsz,
trz應(yīng)在某個(gè)PATH路徑下。 - 在 Windows 中,檢查標(biāo)題有沒(méi)有
管理員三個(gè)字,以管理員運(yùn)行時(shí)可能會(huì)由于 UAC 設(shè)置的原因?qū)е峦喜涣宋募?/li> - 在 Windows Terminal 中,需要將文件或目錄拖到左上角,顯示
粘貼文件路徑時(shí)再放開(kāi)。 - 在 Windows 的
cmd和PowerShell中,一次只能拖一個(gè)文件或目錄,拖多個(gè)也只有鼠標(biāo)正對(duì)著的那個(gè)是生效的。
- 檢查
開(kāi)發(fā)指引
想要讓你自己開(kāi)發(fā)的 ssh 客戶(hù)端支持 trzsz ?請(qǐng)參考 go ssh client example。
錄屏演示
在 windows 的 cmd 使用示例:
在 Ubuntu 原生終端使用示例:
在 Mac 原生終端拖文件上傳的示例:
