它是可能的管道到/从剪贴板在Bash?

无论是连接到设备手柄还是使用辅助应用程序,我都找不到任何东西。

例如,如果/dev/clip是一个连接到剪贴板的设备,我们可以这样做:

cat /dev/clip        # Dump the contents of the clipboard
cat foo > /dev/clip  # Dump the contents of "foo" into the clipboard

当前回答

Mac版:

echo "Hello World" | pbcopy
pbpaste

它们位于/usr/bin/pbcopy和/usr/bin/pbpaste。

其他回答

在Wayland上,xcopy似乎不能工作。使用wl-clipboard代替。

例如,在Fedora上:

sudo dnf install wl-clipboard

tree | wl-copy

wl-paste > file

我只是在我的KDE环境中搜索相同的东西。

请随意使用剪贴和剪贴。

KDE:

> echo "TEST CLIP FROM TERMINAL" | clipcopy
> clippaste
TEST CLIP FROM TERMINAL

xsel在Debian/Ubuntu/Mint

# append to clipboard:
cat 'the file with content' | xsel -ab

# or type in the happy face :) and ...
echo 'the happy face :) and content' | xsel -ib

# show clipboard
xsel -ob

# Get more info:
man xsel

安装

sudo apt-get install xsel

你可以使用大量的剪贴板。我想你可能是一个Linux用户,想把东西放到X Windows主剪贴板中。通常,您想要与之对话的剪贴板有一个实用程序可以让您与之对话。

在X的情况下,有xclip(和其他)。xclip -selection c将数据发送到剪贴板,在大多数应用程序中使用Ctrl + c, Ctrl + V。

如果你在Mac OS X上,有pbcopy。例如,cat example.txt | pbcopy

如果你在Linux终端模式下(没有X),那么查看有剪贴板的gpm或Screen。试试Screen命令readreg。

在Windows 10+或Cygwin下,使用/dev/clipboard或clip。

我找到了一个很好的参考:如何瞄准多个选择与xclip

在我的情况下,我想粘贴内容在剪贴板上,也看到什么被粘贴在那里,所以我也使用tee命令与文件描述符:

echo "just a test" | tee >(xclip -i -selection clipboard)

>()是进程替换的一种形式。Bash用连接到括号内程序的标准输入的文件描述符的路径替换它们。

tecommand将您的命令分叉,允许您“管道其内容”并在标准输出“stdout”上查看结果。

你也可以创建别名来获取和写在剪贴板上,允许你使用“pbcopy”和“pbpaste”,就像你在Mac上一样。在我的情况下,当我使用Z shell (zsh)时,我在我的别名文件中有这个:

(( $+commands[xclip] )) && {
    alias pbpaste='xclip -i -selection clipboard -o'
    alias pbcopy='xclip -selection clipboard'
}

Z shell中的(($+命令[name]))测试命令“name”是否安装在您的系统上,然后两个别名都用{}分组。&&是一个二进制AND;如果a,那么b,因此如果你有xclip,那么别名将被设置。

echo "another test" | tee >(pbcopy)

要获取剪贴板内容,只需输入:

pbpaste | "any-command-you-need-here"