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


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

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

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

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

    MIT License PyPI trzsz-iterm2 中文网站

    安装指南

    • 用 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触发器配置

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

      iTerm2 Enable Python API

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

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

      iTerm2 Enable ITERM2_COOKIE

    进度条配置

    可选1:使用文本进度条

    • text 进度条示例 using trzsz in iTerm2 with text progress bar

    • 升级 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 进度条示例 using trzsz in iTerm2 with zenity progress bar

    • 安装 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)

      iTerm2 enable drag files

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

  • 相关阅读:
    3
    正确的消费理念和方式
    2
    1
    善待精力,保持体力,保持热情
    为什么不从今天开始呢?
    c++中的新成员
    函数重载分析下
    函数重载分析上
    函数参数的扩展
  • 原文地址:https://www.cnblogs.com/sunsky303/p/16745148.html
Copyright © 2020-2023  润新知