我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:
cat file | clipboard
我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:
cat file | clipboard
当前回答
我来自一个精简的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可执行文件。
其他回答
对于mac,这是一个示例方法复制(到剪贴板)粘贴(从剪贴板)使用命令行
将pwd命令的结果复制到剪贴板as
$ pwd | pbcopy
使用剪贴板中的内容通过您的机器的快捷方式进行粘贴或在命令中,如下所示
$ cd $(pbpaste)
我在这里创建了一个工具
取决于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
使用.bashrc脚本的本机解决方案
Linux, macOS, Windows (WSL/CYGWIN)
这些系统都使用自己的工具将剪贴板功能合并到命令行界面(CLI)中。这意味着,当使用例如在Windows子系统for Linux (WSL)上的Ubuntu命令行时,通常的xclip解决方案将不起作用。这同样适用于macOS。
下表概述了在不同系统上需要的复制/粘贴工具:
OS | Copy | Paste |
---|---|---|
WSL | clip.exe |
powershell.exe Get-Clipboard |
CYGWIN | > /dev/clipboard |
cat /dev/clipboard |
macOS | pbcopy |
pbpaste |
Linux | xclip -sel clip |
xclip -sel clip -o |
统一的。bashrc解决方案
只需将以下代码放入~/。允许在所有系统上使用复制和粘贴。该解决方案适用于“正常”Linux系统(即Ubuntu, Debian)以及WSL和macOS:
if grep -q -i microsoft /proc/version; then
# on WSL: version contains the string "microsoft"
alias copy="clip.exe"
alias paste="powershell.exe Get-Clipboard"
elif grep -q -i cygwin $(uname -a); then
# on CYGWIN: uname contains the string "cygwin"
alias copy="/dev/clipboard"
alias paste="cat /dev/clipboard"
elif [[ ! -r /proc/version ]]; then
# on MAC: version is not readable at all
alias copy="pbcopy"
alias paste="pbpaste"
else
# on "normal" linux
alias copy="xclip -sel clip"
alias paste="xclip -sel clip -o"
fi
在所有系统上使用
复制:
# pipe
echo "hello world" | copy
# or for direct file input
copy < file
粘贴:
paste > file
我来自一个精简的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可执行文件。