trzsz终端文件传输利器

1.简介

trzsz 是一个简单的文件传输工具, 类似于 lrzsz ( rz / sz ), 并与 tmux 兼容。

2.引言

用过 rzsz 上传和下载文件的,都知道非常的方便。那么,在 Linux 的原生终端,在 Mac 上的原生终端,在 Windows 中的 cmd 和 PowerShell 等,又能不能像 rz / sz 那样方便地传文件呢?

3.trzsz

https://github.com/trzsz/trzsz-go 这个开源软件,不要用GitHub:https ://github.com/trzsz/trzsz,就可以实现类似 rz、sz 那样上传和下文件,还支持传输目录,支持拖文件和目录直接上传,传大文件时进度条也非常友好。

3.1 支持的终端

  • iTerm2 – 参考 Trzsz-iTerm2 安装文档
  • tabby – 安装 tabby-trzsz 插件即可。
  • electerm – 升级到 1.19.0 以上的版本即可。
  • ttyd – 升级到 1.7.3 以上的版本,并且启动时加上 -t enableTrzsz=true,非 localhost 要用 https
  • trzsz-go – 只要是支持本地 shell 的终端就可以用。
  • trzsz.js – 让运行在浏览器中的 webshell 和用 electron 开发的终端支持 trzsz

4.用法

1 、在本地使用 trzsz ssh x.x.x.x 登录服务器( 若用 trzsz -d ssh x.x.x.x 登录,则支持拖文件和目录上传 )。

2、在服务器上使用 trz 命令上传文件,使用 trz -d 上传目录。

3、在服务器上使用 tsz xxx 命令下载 xxx 文件,使用 tsz -d xxx 下载 xxx 目录。

4.1 上传和下载的示例

https://static.gmtgo.com/upload/uPic/2023_05_30_10_38_43_mSQC7s.jpg

4.2 拖文件上传的示例

https://static.gmtgo.com/upload/uPic/2023_05_30_10_39_10_c9ibCb.jpg

4.3 安装说明

4.3.1 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

4.3.2 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

4.3.3 CentOS 用 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

4.3.4 Mac 用 homebrew 安装

brew update
brew install trzsz-go

4.3.5 Windows 用 Scoop 安装

scoop bucket add extras
scoop install trzsz

4.3.6 ArchLinux 用 yay 安装

yay -Syu
yay -S trzsz

4.3.7 其他 从 github release 下载,或者用 go 编译:

git clone https://github.com/trzsz/trzsz-go.git
cd trzsz-go
make
sudo make install

4.4 可配置项

配置文件路径为 ~/.trzsz.conf

DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/

1、DefaultUploadPath 可以设置每次上传默认打开哪个目录。

2、DefaultDownloadPath 可以设置下载的默认路径( 不需要再弹窗选择路径 )。

4.5 使用建议

1、为了使用方便,可以设置 alias ,例如 alias ssh="trzsz ssh",又或者 alias ssh="trzsz -d ssh" 支持拖文件上传。

2、trzsz 支持 tmux,如果是在本地使用 tmux,则先运行 tmux,再 trzsz ssh 登录到远程服务器,即可使用 trztsz 进行上传和下载。

5.常见问题

  • 如果 MSYS2Git Bash 遇到错误 The handle is invalid。在 trzsz 前面加上 winpty 即可,如 winpty trzsz ssh x.x.x.x 这样登录服务器。

Git Bash 已默认安装有 winptyMSYS2 需要手工安装 pacman -S winpty

  • MSYS2Cygwin 等,不支持直接使用 /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

  • 拖文件或目录,没有自动上传?

1、检查 ssh 登录时有没有加上 -d 选项,如 trzsz -d ssh x.x.x.x

2、检查服务器上有没有安装 trzsztrzsz-gotrz 应在某个 PATH 路径下。

3、在 Windows 中,检查标题有没有管理员三个字,以管理员运行 时可能会由于 UAC 设置的原因导致拖不了文件。

4、在 Windows Terminal 中,需要将文件或目录拖到左上角,显示粘贴文件路径 时再放开。

5、在 Windows 的 cmdPowerShell 中,一次只能拖一个文件或目录,拖多个也只有鼠标正对着的那个是生效的。


trzsz终端文件传输利器
https://www.gmtgo.com/44998.html
作者
大帅
发布于
2023年5月30日
许可协议