trzsz is a simple file transfer tools, similar to lrzsz ( rz / sz ) and compatible with tmux, which works with iTerm2 and has a nice progress bar.
Project description
trzsz
trzsz
( trz / tsz ) is a simple file transfer tools, similar to lrzsz
( rz / sz ), and compatible with tmux
.
Website: https://trzsz.github.io
Why?
Considering laptop -> hostA -> hostB -> docker -> tmux
, using scp
or sftp
is inconvenience.
In this case, lrzsz
( rz / sz ) is convenient to use, but unfortunately it's not compatible with tmux
.
tmux
is not going to support rz / sz ( 906, 1439 ), and creating a new tools is much easier than patching tmux
.
Installation
On the server
-
With Python3
sudo python3 -m pip install --upgrade trzsz
-
With Python2
sudo python2 -m pip install --upgrade trzsz
-
With Homebrew
brew update brew install trzsz
Can be installed without sudo
, just add the installation path ( e.g. ~/.local/bin
) to the PATH
environment.
Supported Terminals
-
iTerm2 -- check the trzsz-iterm2 installation.
-
tabby -- install tabby-trzsz plugin.
-
electerm -- upgrade to
1.19.0
or higher. -
trzsz.js -- making webshell in browser and electron terminal supports
trzsz
.
Does your terminal supports trzsz
as well? Please let me know. I would love to have it on the list.
Trzsz Manual
trz
upload files to the remote server
usage: trz [-h] [-v] [-q] [-y] [-b] [-e] [-B N] [-t N] [path]
Receive file(s), similar to rz and compatible with tmux.
positional arguments:
path path to save file(s). (default: current directory)
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-q, --quiet quiet (hide progress bar)
-y, --overwrite yes, overwrite existing file(s)
-b, --binary binary transfer mode, faster for binary files
-e, --escape escape all known control characters
-B N, --bufsize N buffer chunk size ( 1K <= N <= 100M ). (default: 1M)
-t N, --timeout N timeout ( N seconds ) for each buffer chunk.
N <= 0 means never timeout. (default: 100)
tsz
download files from the remote server
usage: tsz [-h] [-v] [-q] [-y] [-b] [-e] [-B N] [-t N] file [file ...]
Send file(s), similar to sz and compatible with tmux.
positional arguments:
file file(s) to be sent
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-q, --quiet quiet (hide progress bar)
-y, --overwrite yes, overwrite existing file(s)
-b, --binary binary transfer mode, faster for binary files
-e, --escape escape all known control characters
-B N, --bufsize N buffer chunk size ( 1K <= N <= 100M ). (default: 1M)
-t N, --timeout N timeout ( N seconds ) for each buffer chunk.
N <= 0 means never timeout. (default: 100)
Trouble shooting
-
If
tmux
is not running on the remote server, but on the local computer, or on a middle server.- Since
trzsz
can't find thetmux
process on the server, have to use thetmux -CC
control mode. - About how to use the
tmux -CC
control mode, please refer to iTerm2 tmux Integration.
- Since
-
If an error occurs, and
trzsz
is hanging up.- Press
control + c
to stoptrz
ortsz
process on the server. - For iTerm2 users, press
command + option + shift + r
to stop iTerm2 Coprocesses.
- Press
-
If
trz -b
binary upload fails, and login to server usingtelnet
ordocker exec
.- Try to escape all known control characters, e.g.,
trz -eb
.
- Try to escape all known control characters, e.g.,
-
If
trz -b
binary upload fails, and the server is usingPython3 < 3.7
.Python3 < 3.7
supports base64 mode, just don't usetrz -b
, usetrz
instead.- If you want to use
trz -b
binary upload, upgrade Python3 to 3.7 or higher, or use Python2.
-
If
trz -b
ortsz -b
binary transfer fails, and login to server usingexpect
.- Try to
export LC_CTYPE=C
before theexpect
script. e.g.:#!/bin/sh export LC_CTYPE=C expect -c ' spawn ssh xxx expect "xxx: " send "xxx\n" interact '
- Try to
Screenshot
Using trzsz in iTerm2 with text
progress bar
Using trzsz in iTerm2 with zenity
progress bar
Using trzsz in tabby with tabby-trzsz
plugin
Contact
Feel free to email me lonnywong@qq.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for trzsz_svr-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fc030ce44036098c3beb14a4cd253654795ec29d23483b0f755e84f1228c105 |
|
MD5 | 95fe5e0349767654f9f0349383eaa763 |
|
BLAKE2b-256 | 36bcc4201834f942f11c6ffa3eea12f707e51488a555a107ff34b237190f1d5e |