Skip to content
forked from trzsz/trzsz-go

trzsz-go is the go version of trzsz, supports native terminals that support a local shell.

License

Notifications You must be signed in to change notification settings

amo996/trzsz-go

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trzsz-go

trzsz ( trz / tsz ) is a simple file transfer tools, similar to lrzsz ( rz / sz ), and compatible with tmux.

MIT License GitHub Release

Please check https://github.com/trzsz/trzsz for more information of trzsz.

trzsz-go is the go version of trzsz, supports native terminals that support a local shell.

Installation

with apt on Ubuntu

sudo apt update && sudo apt install software-properties-common
sudo add-apt-repository ppa:trzsz/ppa && sudo apt update
sudo apt install trzsz

with apt on Debian

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

with 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
brew update
brew install trzsz-go

with scoop on Windows

scoop bucket add extras
scoop install trzsz

with yay on ArchLinux

yay -Syu
yay -S trzsz

with Go install

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

Others

Download from the github releases, or install from the source code:

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

Usage

on the local computer

Add trzsz before the shell to support trzsz ( trz / tsz ), e.g.:

trzsz bash
trzsz PowerShell
trzsz ssh x.x.x.x

Add trzsz --dragfile before the ssh to enable drag files and directories to upload, e.g.:

trzsz -d ssh x.x.x.x
trzsz --dragfile ssh x.x.x.x

on the jump server

If using tmux on the jump server, use trzsz --relay ssh to login to the remote server, e.g.:

tmux
trzsz -r ssh x.x.x.x
trzsz --relay ssh x.x.x.x

on the remote server

Similar to lrzsz ( rz / sz ), command trz to upload files, command tsz /path/to/file to download files.

For more information, check the website of trzsz: https://trzsz.github.io.

Suggestion

  • It is recommended to set alias ssh="trzsz ssh" for convenience, alias ssh="trzsz -d ssh" for dragging files.

  • If using tmux on the local computer, run tmux ( without trzsz ) first, then trzsz ssh to login.

Configuration

trzsz looks for configuration at ~/.trzsz.conf. The path have to end with /, e.g.:

DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/
  • If the DefaultUploadPath is not empty, the path will be opened by default while choosing upload files.

  • If the DefaultDownloadPath is not empty, downloading files will be saved to the path automatically instead of asking each time.

Trouble shooting

  • If using MSYS2 or Git Bash on windows, and getting an error The handle is invalid.

    • Install winpty by pacman -S winpty in MSYS2.
    • Git Bash should have winpty installed, no need to install it manually.
    • Add winpty before trzsz, e.g.: winpty trzsz ssh x.x.x.x.
  • The /usr/bin/ssh in MSYS2 and Cygwin is not supported yet, use the OpenSSH instead.

    • In MSYS2, e.g.: winpty trzsz /c/Windows/System32/OpenSSH/ssh.exe x.x.x.x.
    • In Cygwin, e.g.: trzsz "C:\Windows\System32\OpenSSH\ssh.exe" x.x.x.x.
    • Or use trzsz-ssh instead, e.g.: tssh alias ( The tssh includes trzsz ssh ).
  • Dragging files doesn't upload?

    • Don't forget the --dragfile option. e.g.: trzsz -d ssh x.x.x.x.
    • Make sure the trz in one of the PATH directory on the server.
    • On Windows, make sure there is no Administrator on the title.
    • The cmd and PowerShell only support draging one file into it.
    • On the Windows Terminal, drag files to the top left where shows Paste path to file.

Development

Want to write your own ssh client that supports trzsz? Please check the go ssh client example.

Screenshot

Windows

windows trzsz ssh

Ubuntu

ubuntu trzsz ssh

Drag files

drag files ssh

Contact

Feel free to email the author [email protected]. Welcome to join the QQ group: 318578930.

Sponsor

Want to buy the author a drink 🍺 ?

sponsor wechat qrcode sponsor alipay qrcode

Thanks @BrightXiaoHan @pmzgit.

About

trzsz-go is the go version of trzsz, supports native terminals that support a local shell.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 96.8%
  • Inno Setup 2.7%
  • Makefile 0.5%