trzsz v1.1.5 传目录比 scp -r 还要快了

科技资讯 投稿 5900 0 评论

scp -r 传输含有大量小文件的文件夹( 例如 .git )时,速度超级慢,一般都要先 tar 打包一下,传输完再 tar 解开。

trzsz ( trz / tsz ) v1.1.5 新版本将“tar 打包和解开”内置了,在用户无感的情况下大大提高了传输速度。


安装方法

    Ubuntu 可用 apt 安装

    sudo apt install trzsz

    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 trzsz

    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 安装

    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 trzsz

    yay -Syu yay -S trzsz

  • MacOS 可用 homebrew 安装

    brew install trzsz-go

    brew update brew install trzsz-go

  • Windows 可用 scoop / winget / choco 安装

    scoop install trzsz / winget install trzsz / choco install trzsz

    scoop install trzsz

    winget install trzsz
    
    choco install trzsz
    
  • 用 Go 直接安装( 要求 go 1.20 以上 )

    go install github.com/trzsz/trzsz-go/cmd/...@latest

    go 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

在跳板机上使用

    如果在跳板机上使用 tmux,则需要再使用 trzsz --relay ssh 登录远程服务器,如:

    trzsz ssh jump_server tmux trzsz --relay ssh remote_server

在服务器上使用

    与 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 )。注意路径必须包含 / 结尾,如:

DefaultUploadPath = DefaultDownloadPath = /Users/username/Downloads/

    如果 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 原生终端拖文件上传的示例:

关于 MyBatis-Flex 抄袭 MyBatis-Plus 的澄清 OpenAI 正式上线安卓版 ChatGPT VS Code 优化名称混淆压缩,将内置 JS 减小 20%! Arc 浏览器正式发布 1.0,声称是 Chrome 的替代品 马斯克“零元购”,强夺 @x 推特账号 LK-99:第一种室温常压超导体? ProxyPin - 全平台系统开源免费抓包软件 武汉地震监测网络遭境外黑客攻击,警方表示黑客组织「具有政府背景」 Python 指导委员会计划接受 PEP 703 提案,让全局解释器锁成为可选 Stack Overflow 访问量大幅下降,马斯克称其已被 LLM 取代

编程笔记 » trzsz v1.1.5 传目录比 scp -r 还要快了

赞同 (31) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽