Pigmoral Tech

在SSH会话中使用pbcopy

本文使用DeepSeek翻译,原文链接

pbcopy是一个在macOS上非常方便的命令,可以将文本复制到剪贴板,但在Linux中不可用,这使得从远程服务器复制文本到本地剪贴板变得不方便,例如:

$ cat tmp.txt | pbcopy

通过OSC 52转义序列,我们可以在SSH会话中将文本复制到本地剪贴板。只需将以下内容添加到~/.bashrc~/.zshrc

pbcopy () {
    if [ $# -gt 0 ]
    then
        data="$*"
    else
        data="$(cat)"
    fi
    encoded=$(printf '%s' "$data" | base64)
    if [ -n "$TMUX" ]
    then
        printf '\033Ptmux;\033\033]52;c;%s\a\033\\' "$encoded" > /dev/tty
    else
        printf '\033]52;c;%s\a' "$encoded" > /dev/tty
    fi
}

只要您的终端支持OSC 52,这个方法就有效。

要让这个功能在Tmux中工作,您需要将以下内容添加到~/.tmux.conf

set-option -g allow-passthrough on

参考资料:

Podman在SSH会话结束时退出
lore ♥️ lei ♥️ aerc