trzsz 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
trzsz 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
trzsz 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 Python
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 LonnyWong
适用人群 未知
收录时间 2021-12-18

软件简介

trzsz ( trz / tsz ) 是一个简单的文件传输工具,和 lrzsz ( rz / sz ) 类似,并且支持 tmux。

GitHub: https://github.com/trzsz/trzsz

Gitee: https://gitee.com/trzsz/trzsz

为什么?

考虑 laptop -> hostA -> hostB -> docker -> tmux 这种场景,使用 scp  sftp 是不方便的。

在这种场景下,使用 lrzsz ( rz / sz ) 是很方便的,但是很可惜它与 tmux 不兼容。

tmux 不愿意支持 rz / sz ( 906, 1439 ),而重新造一个工具比修改 tmux 简单很多。

安装指南

在远程服务器上安装

  • 用 Python3 安装

    sudo python3 -m pip install --upgrade trzsz
     
  • 用 Python2 安装

    sudo python2 -m pip install --upgrade trzsz
     
  • 用 Homebrew 安装

    brew update
    brew install trzsz
    

没有 sudo 权限也可以安装,只要将安装路径 ( 可能是 ~/.local/bin ) 添加到 PATH 环境变量中即可。

支持的终端

  如果你的终端也支持 trzsz,请告诉我,我很乐意将它加到此列表中。

使用指南

trz 上传文件

trz 命令可以不带任何参数,将上传文件到当前目录。也可以带一个目录参数,指定上传到哪个目录。

trz /tmp/

tsz 下载文件

tsz 可以带一个或多个文件名(可使用相对路径或绝对路径,也可使用通配符),将下载指定的文件。

tsz file1 file2 file3

-q 静默模式

trz -q  tsz -q xxx ( 加上 -q 选项 ),则在传输文件时不显示进度条。

-y 覆盖模式

trz -y  tsz -y xxx ( 加上 -y 选项 ),如果存在相同文件名的文件就直接覆盖。

-b 二进制模式

trz -b  tsz -b xxx ( 加上 -b 选项 ),二进制传输模式,对于压缩包、图片、影音等较快。

-e 转义控制字符

二进制模式时,控制字符可能会导致失败,trz -eb  tsz -eb xxx ( 加上 -e 选项 ) 转义所有已知的控制字符。

-B 缓冲区大小

trz -B 10k  tsz -B 2M xxx 等,设置缓存区大小 ( 默认 1M )。太小可能会导致传输速度慢,太大可能会导致进度条更新不及时。

-t 超时时间

trz -t 10  tsz -t 30 xxx 等,设置超时秒数 ( 默认 100 秒 )。在超时时间内,如果无法传完一个缓冲区大小的数据则会报错并退出。设置为 0 或负数,则永不超时。

异常处理方法

  • 如果 tmux 不是运行在远程服务器上,而是运行在本地电脑上,或者运行在中间的跳板机上。

    • 因为 trzsz 在远程服务器上找不到 tmux 进程,所以只支持 tmux -CC 控制模式。
    • 关于 tmux -CC 控制模式的用法,请参考 iTerm2 与 tmux -CC 集成
  • 如果出现了错误,且 trzsz 挂住不能动了:

    • 按组合键 control + c 可以停止服务器上的 trz  tsz 进程。
    • 对于 iTerm2 用户,按组合键 command + option + shift + r 可以停止 iTerm2 Coprocesses
  • 如果 trz -b 二进制上传失败,并且登录远程服务器时使用了 telnet  docker exec

    • 可以试试转义所有控制字符,例如 trz -eb
  • 如果 trz -b 二进制上传失败,并且远程服务器使用 Python3 ( 版本小于 3.7 ):

    • Python3 ( 版本小于 3.7 ) 支持 base64 模式,不使用 -b 选项即可,使用 trz 代替。
    • 如果想用 trz -b 二进制上传,则需要升级 Python3 到 3.7 以上的版本,或者使用 Python2。
  • 如果 trz -b  tsz -b 二进制传输失败,并且登录远程服务器时使用了 expect

    • 可以试试在 expect 脚本前设置环境变量 export LC_CTYPE=C,例如:
      #!/bin/sh
      export LC_CTYPE=C
      expect -c '
        spawn ssh xxx
        expect "xxx: "
        send "xxx\n"
        interact
      '
       

屏幕截图

trzsz 在 iTerm2 中 text 进度条示例

using trzsz in iTerm2 with text progress bar

trzsz 在 iTerm2 中 zenity 进度条示例

using trzsz in iTerm2 with zenity progress bar

trzsz 在 tabby 中 tabby-trzsz 插件示例

using trzsz in tabby with tabby-trzsz plugin

联系方式

有什么问题可以发邮件给我 lonnywong@qq.com,也可以直接提 Issues 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
发表了资讯
03/26 15:27

兼容 tmux,类似 rz / sz 的 trzsz 发布 1.0 正式版

兼容 tmux,类似 rz / sz 的 trzsz ( trz / tsz ) 发布 1.0 正式版。 支持更多终端 支持文本进度条 支持默认保存路径 trzsz ( trz / tsz ) 是一个简单的文件传输工具,和 lrzsz ( rz / sz ) 类似,并且支持 tmux。 GitHub: https://github.com/trzsz/trzsz 为什么? 考虑 laptop -> hostA -> hostB -> docker -> tmux 这种场景,使用 scp 或 sftp 是不方便的。 在这种场景下,使用 lrzsz ( rz / sz ) 是很方便的,但是很可惜它与...

0
4
发表了资讯
01/20 00:42

支持 tmux,类似 rz / sz 的 trzsz 发布 0.3.1 版本

tmux 不支持 rz / sz ,于是有一个兼容 tmux 的 trz / tsz ( trzsz ), 可以与 iTerm2 一起用,还有一个不错的进度条。 已发布 0.3.1 版本: 1、支持 ctrl + c 优雅退出。 2、支持 kill -SIGTERM 优雅终止。 为什么开发 trzsz ? 登录远程电脑时用 tmux 保持会话,但 tmux 不支持用 rz / sz 上传和下载文件,这就很不方便了。 重新造一个 rz / sz 比修改 tmux 相对简单很多,并且可以加个进度条,体验上会好很多。 安装指南 远程...

0
5
发表了资讯
01/15 22:43

支持 tmux,类似 rz / sz 的 trzsz 发布 0.3.0 版本

tmux 不支持 rz / sz ,于是有一个兼容 tmux 的 trz / tsz ( trzsz ), 可以与 iTerm2 一起用,还有一个不错的进度条。 已发布 0.3.0 版本: 1、支持二进制模式传输,对于压缩包、图片、影音等传输会快一些。 2、优化了多处使用体验,提示更友好,Python2 也能支持中文名。 trzsz trzsz 是一个简单的文件传输工具,和 lrzsz ( rz / sz ) 类似但支持 tmux,和 iTerm2 一起使用,并且有一个不错的进度条。 GitHub: https://github...

0
6
发表了资讯
2021/12/25 09:13

支持 tmux,类似 rz / sz 的 trzsz 发布 0.1.5 版本

tmux 不支持 rz / sz ,于是有一个兼容 tmux 的 trz / tsz ( trzsz ),可以与 iTerm2 一起用,还有一个不错的进度条。 已发布 0.1.5 版本: 1、支持覆盖模式,-y 选项可以自动覆盖已存在的文件。 2、优化了 tmux 普通模式下的使用体验,在原窗口直接传输文件。 trzsz trzsz 是一个简单的文件传输工具,和 lrzsz ( rz / sz ) 类似但支持 tmux, 和 iTerm2 一起使用,并且有一个不错的进度条。 GitHub: https://github.com/trzsz...

2
13
发表了资讯
2021/12/23 23:40

支持 tmux,类似 rz / sz 的 trzsz 发布 0.1.4 版本

tmux 不支持 rz / sz ,于是有一个兼容 tmux 的 trz / tsz ( trzsz ),可以与 iTerm2 一起用,还有一个不错的进度条。 已发布 0.1.4 版本,支持静默模式,以及解决了 tmux 非控制模式下偶尔出错的问题。 trzsz trzsz 是一个简单的文件传输工具,和 lrzsz ( rz / sz ) 类似但支持 tmux, 和 iTerm2 一起使用,并且有一个不错的进度条。 GitHub: https://github.com/trzsz/trzsz 为什么开发 trzsz ? 登录远程电脑时用 tmux 保持会...

0
7
发表了资讯
2021/12/19 21:10

支持 tmux,类似 rz / sz 的 trzsz 发布 0.1.3 版本

tmux 不支持 rz / sz ,于是有一个兼容 tmux 的 trz / tsz ( trzsz ),可以与 iTerm2 一起用,还有一个不错的进度条。 已发布 0.1.3 版本,支持 tmux 控制模式和非控制模式。 为什么开发 trzsz ? 登录远程电脑时用 tmux 保持会话,但 tmux 不支持用 rz / sz 上传和下载文件,这就很不方便了。 重新造一个 rz / sz 比修改 tmux 相对简单很多,并且可以加个进度条,体验上会好很多。 安装指南 远程服务器安装 trzsz-svr sudo p...

0
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
0 评论
8 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部