前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让你的Mac iTerm优雅的上传下载文件

让你的Mac iTerm优雅的上传下载文件

作者头像
sunsky
发布2022-10-04 21:15:45
2.8K0
发布2022-10-04 21:15:45
举报
文章被收录于专栏:sunskysunsky

我理解优雅是指支持拖拽、支持进度条、支持穿透容器/多层主机。  而今天的主角是trzsz .

trzsz ( trz / tsz ) 是一个兼容 tmux 的文件传输工具,和 lrzsz ( rz / sz ) 类似,并且有进度条和支持目录传输。

trzsz-iterm2 是 trzsz 在 iTerm2 上使用的客户端。

GitHub: https://github.com/trzsz/trzsz

MIT License
MIT License
PyPI trzsz-iterm2
PyPI trzsz-iterm2
中文网站
中文网站

安装指南

用 Python3 安装

代码语言:javascript
复制
sudo python3 -m pip install --upgrade trzsz-iterm2

用 Homebrew 安装

代码语言:javascript
复制
brew update
brew install trzsz

配置指南

找出 trzsz-iterm2 安装的绝对路径 ( 可以是软链,但不支持相对路径 )。

代码语言:javascript
复制
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触发器配置
iTerm2触发器配置

打开 iTerm2 -> Preferences... -> General -> Magic,选中 Enable Python API

iTerm2 Enable Python API
iTerm2 Enable Python API

设置 ITERM2_COOKIE 环境变量可以使启动速度更快。

打开 iTerm2 -> Preferences... -> Advanced,筛选 COOKIE,选择 Yes

iTerm2 Enable ITERM2_COOKIE
iTerm2 Enable ITERM2_COOKIE

进度条配置

可选1:使用文本进度条

text 进度条示例 

using trzsz in iTerm2 with text progress bar
using trzsz in iTerm2 with text progress bar

升级 iTerm2 到 Build 3.5.20220503-nightly 以上的版本。

Trigger 的 Parameters 配置增加 -p text 参数。

代码语言:javascript
复制
/usr/local/bin/trzsz-iterm2 -p text \1

注意 /usr/local/bin/trzsz-iterm2 要替换成真实的 trzsz-iterm2 绝对路径。

可选2:使用 zenity 进度条

zenity 进度条示例 

using trzsz in iTerm2 with zenity progress bar
using trzsz in iTerm2 with zenity progress bar

安装 zenity

代码语言:javascript
复制
brew install ncruces/tap/zenity

如果 Mac M1 安装失败,可以试试用 go 进行编译安装:

代码语言:javascript
复制
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 可执行文件或软链。不然可以建个软链:

代码语言:javascript
复制
sudo ln -sv $(which zenity) /usr/local/bin/zenity

默认保存路径

如果你想自动下载文件到指定目录,而不是每次都弹窗询问。

例如,自动下载文件到 /Users/xxxxx/Downloads

使用文本进度条,将 /usr/local/bin/trzsz-iterm2 -p text \1 改为:

代码语言:javascript
复制
/usr/local/bin/trzsz-iterm2 -p text -d '/Users/xxxxx/Downloads' \1

使用 zenity 进度条,将 /usr/local/bin/trzsz-iterm2 \1 改为:

代码语言:javascript
复制
/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,配置如下:

代码语言:javascript
复制
/usr/local/bin/trzsz-iterm2 -p text dragfiles \(filenames)
iTerm2 enable drag files
iTerm2 enable drag files

注意 /usr/local/bin/trzsz-iterm2 要替换成真实的 trzsz-iterm2 绝对路径。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装指南
  • 配置指南
  • 进度条配置
    • 可选1:使用文本进度条
      • 可选2:使用 zenity 进度条
      • 默认保存路径
      • 拖文件和目录上传
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档