我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:

cat file | clipboard

当前回答

在安装了xclip的Linux下:

Xclip -选择剪贴板<文件

其他回答

把这个添加到~/.bashrc:

# Now `cclip' copies and `clipp' pastes'
alias cclip='xclip -selection clipboard'
alias clipp='xclip -selection clipboard -o'

现在剪贴粘贴和剪贴复制-但你也可以做更花哨的东西: 剪切| sed 's/^/ /' |剪辑 ↑缩进您的剪贴板;适用于没有堆栈溢出{}按钮的站点

您可以通过运行以下命令添加它:

printf "\nalias clipp=\'xclip -selection c -o\'\n" >> ~/.bashrc
printf "\nalias cclip=\'xclip -selection c -i\'\n" >> ~/.bashrc

一种方法是:

安装xclip,例如: Sudo apt-get安装xclip 管道输出到xclip复制到剪贴板: Cat文件| xclip 将刚才复制的文本粘贴到X应用程序中: xclip - o

要粘贴除X应用程序之外的其他地方,例如浏览器窗口中网页的文本区域,请使用:

cat file | xclip -selection clipboard

考虑创建一个别名:

alias "c=xclip"
alias "v=xclip -o"

为了了解这有多有用,假设我想在一个新的终端窗口中打开我的当前路径(在某些系统中可能有其他的方法,如Ctrl+T,但这只是为了说明目的):

Terminal 1:
pwd | c

Terminal 2:
cd `v`

注意v周围的' ',这首先将v作为命令执行,然后将其替换为cd使用。

只复制内容到X剪贴板

cat file | xclip

我来自一个精简的KDE背景,没有访问xclip, xsel或其他花哨的东西。我有一个TCSH Konsole让事情变得更糟。

必备条件:qdbus klipper xargs bash

创建一个bash可执行文件foo.sh。

#!/bin/bash
qdbus org.kde.klipper /klipper setClipboardContents "$1" > /dev/null

注意:这需要bash,因为TCSH不支持多行参数。

后面跟着。cshrc. xml文件中的TCSH别名。

alias clipboard xargs -0 /path/to/foo

解释:

Xargs -0将stdin管道到单个参数中。该参数被传递给bash可执行文件,该可执行文件使用qdbus向klipper发送“复制到剪贴板”请求。通往/dev/null的管道是不将qdbus返回的换行符打印到控制台。

使用示例:

ls | clipboard

这将把当前文件夹的内容复制到剪贴板中。

注意:只适用于管道。如果需要复制参数,直接使用bash可执行文件。

基于之前的文章,我最终得到了以下轻量级的别名解决方案,可以添加到.bashrc:

if [ -n "$(type -P xclip)" ]
then
  alias xclip='xclip -selection clipboard'
  alias clipboard='if [ -p /dev/stdin ]; then xclip -in; fi; xclip -out'
fi

例子:

# Copy
$ date | clipboard
Sat Dec 29 14:12:57 PST 2018

# Paste
$ date
Sat Dec 29 14:12:57 PST 2018

# Chain
$ date | clipboard | wc
   1       6      29

我为Linux/OSX/Cygwin创建了一个工具,它与其他工具类似,但略有独特之处。我叫它cb,它可以在这个github gist中找到。

在这个要点上,我演示了如何使用Linux、macOS和Cygwin通过命令行进行复制和粘贴。

Linux

_copy(){
    cat | xclip -selection clipboard
}

_paste(){
    xclip -selection clipboard -o
}

操作系统

_copy(){
    cat | pbcopy
}

_paste(){
    pbpaste
}

Cygwin

_copy(){
    cat > /dev/clipboard
}

_paste(){
    cat /dev/clipboard
}

注:我最初只是打算在我对Bob Enohp的回答的评论中提到这一点。但后来我意识到我应该在我的主旨上加上一个自述。由于主旨编辑器不提供Markdown预览,我在这里使用了答案框,在复制/粘贴到我的主旨后,“我不妨提交答案。”如果你想讨论功能/bug,最好在github上的要点评论中这样做。

cb

剪贴板上的防漏t恤

这个脚本是模仿tee(参见man tee)的。

它就像普通的复制和粘贴命令一样,但是统一,并且能够感知你什么时候想要它是可链接的

例子

Copy

$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017

粘贴

# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017

链接

$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017

通过文件重定向复制

(在最后按时间顺序演示是有意义的)

# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00