Trzsz 文件傳輸利器

 

引言

用過 rz、sz 上傳和下載文件的,都知道非常的方便。那麼,在 Linux 的原生終端,在 Mac 上的原生終端,在 Windows 中的 cmd 和 PowerShell 等,又能不能像 rz / sz 那樣方便地傳文件呢?

trzsz

https://github.com/trzsz/trzsz-go 這個開源軟件,不要用GitHub:https ://github.com/trzsz/trzsz,就可以實現類似 rz、sz 那樣上傳和下文件,還支持傳輸目錄,支持拖文件和目錄直接上傳,傳大文件時進度條也非常友好。

用法

1 、在本地使用 trzsz ssh x.x.x.x 登錄服務器( 若用 trzsz -d ssh x.x.x.x 登錄,則支持拖文件和目錄上傳 )。

2、在服務器上使用 trz 命令上傳文件,使用 trz -d 上傳目錄。

3、在服務器上使用 tsz xxx 命令下載 xxx 文件,使用 tsz -d xxx 下載 xxx 目錄。

上傳和下載的示例

拖文件上傳的示例

安裝說明

  • Ubuntu 用 apt 安裝
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 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 安裝
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
  • Mac 用 homebrew 安裝
brew update
brew install trzsz-go
  • Windows 用 Scoop 安裝
scoop bucket add extras
scoop install trzsz
  • ArchLinux 用 yay 安裝
yay -Syu
yay -S trzsz
git clone https://github.com/trzsz/trzsz-go.git
cd trzsz-go
make
sudo make install

可配置項

配置文件路徑爲 ~/.trzsz.conf

DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/

1、DefaultUploadPath 可以設置每次上傳默認打開哪個目錄。

2、DefaultDownloadPath 可以設置下載的默認路徑( 不需要再彈窗選擇路徑 )。

使用建議

1、爲了使用方便,可以設置 alias ,例如 alias ssh="trzsz ssh",又或者 alias ssh="trzsz -d ssh" 支持拖文件上傳。

2、trzsz 支持 tmux,如果是在本地使用 tmux,則先運行 tmux,再 trzsz ssh 登錄到遠程服務器,即可使用 trztsz 進行上傳和下載。

常見問題

  • 如果 MSYS2Git Bash 遇到錯誤 The handle is invalid。在 trzsz 前面加上 winpty 即可,如 winpty trzsz ssh x.x.x.x 這樣登錄服務器。

Git Bash 已默認安裝有 winptyMSYS2 需要手工安裝 pacman -S winpty

  • MSYS2Cygwin 等,不支持直接使用 /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

  • 拖文件或目錄,沒有自動上傳?

1、檢查 ssh 登錄時有沒有加上 -d 選項,如 trzsz -d ssh x.x.x.x

2、檢查服務器上有沒有安裝 trzsztrzsz-gotrz 應在某個 PATH 路徑下。

3、在 Windows 中,檢查標題有沒有管理員三個字,以管理員運行 時可能會由於 UAC 設置的原因導致拖不了文件。

4、在 Windows Terminal 中,需要將文件或目錄拖到左上角,顯示粘貼文件路徑 時再放開。

5、在 Windows 的 cmdPowerShell 中,一次只能拖一個文件或目錄,拖多個也只有鼠標正對着的那個是生效的。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章