我理解優雅是指支持拖拽、支持進度條、支持穿透容器/多層主機。 而今天的主角是trzsz .
trzsz
( trz / tsz ) 是一個兼容 tmux 的文件傳輸工具,和 lrzsz ( rz / sz ) 類似,並且有進度條和支持目錄傳輸。
trzsz-iterm2
是 trzsz 在 iTerm2 上使用的客戶端。
GitHub: https://github.com/trzsz/trzsz
安裝指南
- 用 Python3 安裝
sudo python3 -m pip install --upgrade trzsz-iterm2
- 用 Homebrew 安裝
brew update brew install trzsz
配置指南
- 找出
trzsz-iterm2
安裝的絕對路徑 ( 可以是軟鏈,但不支持相對路徑 )。which trzsz-iterm2
下文中的
/usr/local/bin/trzsz-iterm2
請自行替換成真實的trzsz-iterm2
絕對路徑。 -
打開
iTerm2 -> Preferences... -> Profiles -> ( 在左邊選中一個 Profile ) -> Advanced -> Triggers -> Edit -> [+]
,如下配置:Name Value Note Regular Expression :(:TRZSZ:TRANSFER:[SRD]:\d+\.\d+\.\d+:\d+)
前後無空格 Action Run Silent Coprocess...
Parameters /usr/local/bin/trzsz-iterm2 \1
前後無空格 Enabled ✅ 選中 -
不要選中最下面的
Use interpolated strings for parameters
。 -
注意
/usr/local/bin/trzsz-iterm2
要替換成真實的trzsz-iterm2
絕對路徑。 -
不同
Profile
的Trigger
是互相獨立的,也就是每個用到的Profile
都要進行配置。 -
Trigger
的配置是允許輸入多行的,但只會顯示一行,注意不要多複製了一個換行符進去。
-
-
打開
iTerm2 -> Preferences... -> General -> Magic
,選中Enable Python API
。 -
設置
ITERM2_COOKIE
環境變量可以使啓動速度更快。打開
iTerm2 -> Preferences... -> Advanced
,篩選COOKIE
,選擇Yes
。
進度條配置
可選1:使用文本進度條
-
text 進度條示例
-
升級 iTerm2 到
Build 3.5.20220503-nightly
以上的版本。 -
Trigger
的Parameters
配置增加-p text
參數。/usr/local/bin/trzsz-iterm2 -p text \1
注意
/usr/local/bin/trzsz-iterm2
要替換成真實的trzsz-iterm2
絕對路徑。
可選2:使用 zenity 進度條
-
zenity 進度條示例
- 安裝
zenity
brew install ncruces/tap/zenity
- 如果
Mac M1
安裝失敗,可以試試用go
進行編譯安裝:brew install go go install 'github.com/ncruces/zenity/cmd/zenity@latest' sudo cp ~/go/bin/zenity /usr/local/bin/zenity
- 執行
ls -l /usr/local/bin/zenity
應該輸出zenity
可執行文件或軟鏈。不然可以建個軟鏈:sudo ln -sv $(which zenity) /usr/local/bin/zenity
默認保存路徑
如果你想自動下載文件到指定目錄,而不是每次都彈窗詢問。
例如,自動下載文件到 /Users/xxxxx/Downloads
- 使用文本進度條,將
/usr/local/bin/trzsz-iterm2 -p text \1
改爲:/usr/local/bin/trzsz-iterm2 -p text -d '/Users/xxxxx/Downloads' \1
- 使用 zenity 進度條,將
/usr/local/bin/trzsz-iterm2 \1
改爲:/usr/local/bin/trzsz-iterm2 -p zenity -d '/Users/xxxxx/Downloads' \1
注意 /usr/local/bin/trzsz-iterm2
要替換成真實的 trzsz-iterm2
絕對路徑。
拖文件和目錄上傳
-
升級 iTerm2 到
Build 3.5.20220806-nightly
以上的版本。 -
打開
iTerm2 -> Preferences... -> Advanced
,篩選files are dropped into
,配置如下:/usr/local/bin/trzsz-iterm2 -p text dragfiles \(filenames)
注意 /usr/local/bin/trzsz-iterm2
要替換成真實的 trzsz-iterm2
絕對路徑。