trzsz 已实现 “拖文件自动上传到远程服务器”,支持多种平台的原生终端。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
LonnyWong
V2EX    程序员

trzsz 已实现 “拖文件自动上传到远程服务器”,支持多种平台的原生终端。

  •  
  •   LonnyWong 2022-06-11 12:41:52 +08:00 5317 次点击
    这是一个创建于 1225 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1 、在本地使用 trzsz -d ssh x.x.x.x 登录服务器。加 -d 是开启拖文件上传功能,默认是不开启的。

    2 、将 trztsz 放到服务器某个 PATH 目录下,要有可执行权限。执行命令 trz -v 不会报错即可。

    项目地址:https://github.com/trzsz/trzsz-go ,给个 Star 支持下?

    Release 中下载的 zip 里就是三个 trzsztrztsz 可执行程序,也可以自己 clone 下来 make 编译。

    在 Mac 上的效果如图(也支持 Windows 和 Linux 的):

    踩坑指南(特别是 Windows ):

    1 、trzsz ssh 时记得加上 -d--dragfile,如 trzsz -d ssh x.x.x.x

    2 、记得将 trz 放到远程服务器某个 PATH 目录下,要有可执行权限。

    3 、在 Windows 的 cmd 、PowerShell 、Terminal 上,标题不要有“管理员”,即不要“以管理员身份运行”它们,要不然可能拖不了文件。在我的电脑上 Terminal 总是以管理员运行,后来设置一下 UAC 重启电脑就好了。

    4 、在 Windows 的 cmd 、PowerShell 中,拖多个文件进去,也只有一个文件生效的( 鼠标指向那个 )。

    5 、在 Windows 的 Terminal 中,要拖文件到左上角,出现“粘贴文件路径”时再放开鼠标,要不然没用。

    41 条回复    2022-06-26 11:05:24 +08:00
    May725
        1
    May725  
       2022-06-11 12:46:38 +08:00
    支持,已 star
    ByteCat
        2
    ByteCat  
       2022-06-11 12:54:41 +08:00
    挺酷的,支持一下,已 star
    guoqiao
        3
    guoqiao  
       2022-06-11 14:36:51 +08:00
    赞,我经常需要电脑上下载了视频拖到 NAS 上,有了这个要方便很多.
    2NUT
        4
    2NUT  
       2022-06-11 14:44:43 +08:00
    楼主想法是挺好的

    之前 zmodem 协议不知道为啥 用户侧客户端非要绑在终端软件上,独立出来很香

    其他发行版,包管理仓库赶紧上呀
    zoharSoul
        5
    zoharSoul  
       2022-06-11 15:37:36 +08:00
    @2NUT #4 但是 zmodern 不用改 ssh 登录命令就舒服, 要是两种结合一下就完美了
    ysc3839
        6
    ysc3839  
       2022-06-11 17:31:28 +08:00 via Android
    请问这功能是如何实现的呢?似乎各类终端拖文件进去是自动粘贴文件路径?
    LonnyWong
        7
    LonnyWong  
    OP
       2022-06-11 17:50:43 +08:00 via iPhone   1
    @ysc3839 对的,拖文件进去就是粘贴绝对路径。
    trzsz 是接管了 ssh 的输入和输出的,一般情况下只是转发。当检测到文件绝对路径时就走上传逻辑就可以了。
    为了避免手工粘贴时误伤,分析了各大平台终端拖文件进去的规律,例如 mac 和 linux 都有一个空格结尾的,必须 100%满足这些规律我才会上传。
    documentzhangx66
        8
    documentzhangx66  
       2022-06-11 17:59:02 +08:00
    扫个盲:

    xshell 目前是地球上,windows 连接 linux 最好的工具,没有之一。而且这拖动上传功能,也是 xshell 原生功能之一。

    xshell 属于 xManager ,目前最稳的是 5.x 版本,百度搜这软件请搜 xManager 5
    singerll
        9
    singerll  
       2022-06-11 18:07:28 +08:00 via Android
    牛逼
    love4taylor
        10
    love4taylor  
    PRO
       2022-06-11 18:09:00 +08:00
    @documentzhangx66 XshellGhost 才几年啊忘得一干二净了?
    love4taylor
        11
    love4taylor  
    PRO
       2022-06-11 18:11:13 +08:00
    homebrew 赶紧的啊
    LonnyWong
        12
    LonnyWong  
    OP
       2022-06-11 18:23:06 +08:00 via iPhone
    @Love4Taylor 在忙着支持文件夹传输呢。先直接下载,或者用 go 直接编译?

    homebrew 现在可以安装 Python 版的,不过只支持 iTerm2 。
    brader
        13
    brader  
       2022-06-11 18:28:51 +08:00
    在 win 下,这个软件的优势和亮点在哪,比之 xshell 和 mobaxterm 如何
    LonnyWong
        14
    LonnyWong  
    OP
       2022-06-11 18:39:44 +08:00 via iPhone
    @brader 优点是免费、开源、不依赖终端,cmd 、PowerShell 和 Windows Terminal 等都能用。我没怎么用过 xshell ,你也可以对比一下进度条。

    缺点是 Windows 的 ssh 上传有点慢,下载速度是正常的。而 MSYS2 的 ssh 又有问题,输入 AAAABBBBCCCC ,远程可能收到 AAAACCCC ,或者 BBBBCCCCAAAA ,无语了。

    在 Windows 关注上传速度的,建议使用 electrem 或者 tabby ,这两个终端都已支持 trzsz ,暂时未支持拖文件上传。
    beordle
        15
    beordle  
       2022-06-11 20:25:14 +08:00 via iPhone
    支持~看起来很好用
    mkmoon
        16
    mkmoon  
       2022-06-11 22:17:25 +08:00 via iPhone
    支持 tmux 吗
    AngryBigCat
        17
    AngryBigCat  
       2022-06-11 23:55:58 +08:00
    @documentzhangx66 用过 Termius 的人表示不服
    documentzhangx66
        18
    documentzhangx66  
       2022-06-12 01:22:47 +08:00
    @Love4Taylor 这可是好事,想不通吗?

    你看其他工具,就算有后门,会被关注到嘛?
    documentzhangx66
        19
    documentzhangx66  
       2022-06-12 01:23:29 +08:00
    @AngryBigCat

    能说说 Termius 比 xshell 好在哪里嘛?
    LonnyWong
        20
    LonnyWong  
    OP
       2022-06-12 01:26:25 +08:00 via iPhone
    @mkmoon 必须支持 tmux 呀
    LonnyWong
        21
    LonnyWong  
    OP
       2022-06-12 01:33:10 +08:00 via iPhone
    @documentzhangx66 开源的代码,并且代码量不多,更容易看出有没有后门吧?
    不是说开源的就没有安全问题,但至少不会像闭源那些,植入了也不易被发现。
    documentzhangx66
        22
    documentzhangx66  
       2022-06-12 04:48:34 +08:00
    @LonnyWong 这事与开源闭源没关系,主要看知名度。名气大的就算用虚拟化重构语言,都会被破解。
    guoqiao
        23
    guoqiao  
       2022-06-12 05:57:42 +08:00
    好像在我的群晖 NAS 上不工作, 提了一个 issue: https://github.com/trzsz/trzsz-go/issues/5
    有人遇到同样的问题吗?
    QUC062IzY3M1Y6dg
        24
    QUC062IzY3M1Y6dg  
       2022-06-12 06:02:59 +08:00 via Android
    真不错,star 了
    LonnyWong
        25
    LonnyWong  
    OP
       2022-06-12 09:29:31 +08:00 via iPhone
    @guoqiao 不使用 trzsz ,直接 ssh 上去,然后拖文件进去,会显示文件的绝对路径吗?
    ferock
        26
    ferock  
    PRO
       2022-06-12 10:18:20 +08:00
    已 start
    ferock
        27
    ferock  
    PRO
       2022-06-12 10:29:31 +08:00
    @LonnyWong

    ```bash

    $
    bracketed-paste-magic:zle:47: not enough arguments for -U
    ```
    LonnyWong
        28
    LonnyWong  
    OP
       2022-06-12 11:31:11 +08:00 via iPhone
    @ferock 我看到你提 issue 了,已回复。因为我没有 NAS 环境,只在 windows 、mac 和 ubuntu 虚拟机里测试了。在 issue 里多提供一些信息吧,按理说只是环境问题,应该是很容易就能支持的。
    keepfun
        29
    keepfun  
       2022-06-12 12:59:20 +08:00
    支持跳板机登陆的那种 服务器么?
    LonnyWong
        30
    LonnyWong  
    OP
       2022-06-12 13:09:58 +08:00 via iPhone
    @fenglangjuxu 支持的,无论多少跳都可以。

    在最终那个服务器运行 tmux 也支持。

    在本地先运行 tmux ,然后 trzsz ssh 登录,也支持。

    如果是在中间运行 tmux ,那就只支持 iTerm2 + tmux -CC 那种。详见 Python 版: https://github.com/trzsz/trzsz
    WalkingEraser
        31
    WalkingEraser  
       2022-06-13 11:31:48 +08:00 via Android
    跟 scp 比有什么优势嘛
    LonnyWong
        32
    LonnyWong  
    OP
       2022-06-13 11:42:57 +08:00 via iPhone
    @WalkingEraser
    1. 多次跳转时,scp 不一定能用。或者 docker exec 进入到 docker 内时,scp 也玩不转了。

    2. 当你已经登录到服务器上时,在服务器上输入 scp 是传不了文件的,非得要另外开一个窗口在本地执行 scp ,或者搞个反向的通道。就是 scp 操作步骤多,trzsz 的操作步骤少。
    frinstioAKL
        33
    frinstioAKL  
       2022-06-13 17:27:07 +08:00
    iterm2 + zsh 似乎不能用?
    frinstioAKL
        34
    frinstioAKL  
       2022-06-13 17:27:59 +08:00
    本地 iterm2 + zsh, server 用 bash 时拖拽上传可以执行, 用 zsh 只会粘贴路径, 无法上传
    LonnyWong
        35
    LonnyWong  
    OP
       2022-06-13 17:52:14 +08:00
    @frinstioAKL 估计是 https://github.com/trzsz/trzsz-go/issues/6 这个问题,可以从微云上 https://share.weiyun.com/peQKq3ZL 下载来试试。
    frinstioAKL
        36
    frinstioAKL  
       2022-06-13 19:10:59 +08:00
    @LonnyWong #35 微云这个版本没问题了, 赞
    LonnyWong
        37
    LonnyWong  
    OP
       2022-06-13 19:19:40 +08:00 via iPhone
    @frinstioAKL #36 那就好,代码是提交到 github 上的了,也可以自己编译。

    下一个版本会带上这个修改,等文件夹功能搞完就会发布。
    GoRoad
        38
    GoRoad  
       2022-06-14 15:29:36 +08:00
    这个支持 iterm2 profile 的 expect 脚本方式登录吗
    LonnyWong
        39
    LonnyWong  
    OP
       2022-06-14 15:57:11 +08:00 via iPhone
    @GoRoad 按理说支持的,你可以试一下,如果有问题可以提 issue 。
    WalkingEraser
        40
    WalkingEraser  
       2022-06-14 17:13:19 +08:00 via Android
    @LonnyWong Nice
    LonnyWong
        41
    LonnyWong  
    OP
       2022-06-26 11:05:24 +08:00
    @Love4Taylor homebrew 已收录,可以如下这样安装:

    ```
    brew update
    brew install trzsz-go
    ```
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     883 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 22:28 PVG 06:28 LAX 15:28 JFK 18:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86