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

cat file | clipboard

当前回答

当我需要复制ssh-key时,我通常会执行这个命令:

cat ~/.ssh/id_rsa.pub | pbcopy

Cmd +v或ctrl+v任意位置。

其他回答

2021的答案

如果你正在寻找一个问题的答案,“我如何将一个命令的输出复制到我的剪贴板中以用于我的下一个命令?”,那么这个解决方案对于Mac用户来说非常有用。

在我的示例中,我只想简单地复制postgres的$的输出,这样我就可以简单地将它粘贴到下一个命令中。

我通过管道我的第一个命令$ postgres $ pbcopy解决了这个问题。

which postgres | pbcopy

然后我可以简单地命令+ V,得到我想要的结果:

/usr/local/bin/postgres

当我需要复制ssh-key时,我通常会执行这个命令:

cat ~/.ssh/id_rsa.pub | pbcopy

Cmd +v或ctrl+v任意位置。

对于mac,这是一个示例方法复制(到剪贴板)粘贴(从剪贴板)使用命令行

将pwd命令的结果复制到剪贴板as

$ pwd | pbcopy

使用剪贴板中的内容通过您的机器的快捷方式进行粘贴或在命令中,如下所示

$ cd $(pbpaste)

我来自一个精简的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可执行文件。

具有sudo特权:

echo '#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
data = ""
for i in sys.stdin:
        data = data + i
r.clipboard_append(data)
r.update()
r.destroy()' | sudo tee /usr/bin/copy > /dev/null
sudo chmod +x /usr/bin/copy

或者没有sudo权限(仅适用于一个用户):

echo '#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
data = ""
for i in sys.stdin:
        data = data + i
r.clipboard_append(data)
r.update()
r.destroy()' > ~/.local/bin/copy
chmod +x ~/.local/bin/copy

用法:

echo "hi" | copy