如何将stdin发送到剪贴板?


44

Unix中是否有允许以下功能:

echo "Some Text" | copy-to-clipboard

你一定是说std​​out吗?
phunehehe

3
它实际上取决于您站在:P管道的哪一侧,该命令将其发送到剪贴板,即命令stdin
Stefan 2010年

2
长期使用Unix的人会告诉您编写更好<longTextFile straightToClipboard。与相同cat longTextFile straightToClipboard,但不需要运行cat。只是一个观察。随意忽略它。如果您有兴趣,请参阅猫的无用使用奖以获取一些背景和示例。
Mikel

Answers:


34

有几个工具可以写入剪贴板。我用xsel。它需要标记来写入主要的X选择(-p),次要选择(-s)或剪贴板(-b)。传递它-i会告诉它从stdin读取,因此您需要:

$ echo "Some Text" | xsel -i -b

4
另一个是xclip;默认情况下,它从stdin接受。我之所以使用它,是因为它是我了解的第一个这样的工具。
肖恩·高夫

@Shawn将其作为单独的答案发布:)
Michael Mrozek

我认为-i在这种情况下并不需要:man xsel1.2.0说:and the selection is set from standard input if standard input is not a terminal (tty)
Ciro Santilli新疆改造中心法轮功六四事件2015年

xsel对我不起作用(我不知道为什么),但是xclip(其他答案)却对我有用。
markrian

11

使用xclip,如@Nicolas建议,如果你想以后粘贴剪贴板中的内容,如使用Ctrl + V键,就可以使用这种方式:

$ echo "Some Text" | xclip -selection clipboard

1
不想尝试解决一个老问题,但是如果您懒惰,那么echo "Some Text" | xclip -sel c也可以。
anonymoose

9

你可以使用xsel

xsel < file 

10
问题是:哪个剪贴板?Linux X服务器有3个(通常只使用2个)...默认情况下,xsel使用PRIMARY剪贴板。每次选择soemthing ,PRIMARY剪贴板都会自动启动。您可以通过按鼠标中键进行粘贴。.Ctrl + C / Crtr + V类型的剪贴板称为CLIPBOARD剪贴板:) ..因此,如果要对'xsel'使用Ctrl + C / Ctrl + V剪贴板,命令为:(xsel -ib <file-long-or-short“看,猫!” :) ...或如果您喜欢<file-long-or-short xsel -ib.. -i为默认设置。-b用于clipBoard
Peter.O 2011年

侏儒终端。编辑。@jamespo-这似乎不起作用。
ripper234 2011年

为我在ubuntu 10.04的gnome-terminal上使用回购中的xsel(带有中间按钮的粘贴)工作
jamespo 2011年

7

在Mac OS X上,有可爱的pbcopypbpaste命令,它们非常有用:)


0

最简单的可能是xclip

$ echo "Some Text" | xclip

然后使用鼠标的中间按钮粘贴。

与一样xsel,它通常默认情况下未安装,因此您可能需要安装它(sudo apt-get install xclip在Debian / Ubuntu上)。


2
xclip需要-selection clipboard选项。每个手册页的默认选择是其他内容。
Acumenus 2014年

0

xclip@Nicolas Raoul回答说,这是一个好方法,但是当将包含换行符的任何内容管道传输到剪贴板时,例如pwd,也会复制换行符。在某些情况下,可能希望这样做,但是大多数人不希望使用换行符。

解决方案是:

echo -n $(pwd) | xclip -selection clipboard

-n从已回显的参数中删除换行符)

要么:

printf %s $(pwd) | xclip -selection clipboard

可能需要使用""around,$(pwd)但无论是否在带有bash的ubuntu上都可以使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.