我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:
cat file | clipboard
我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:
cat file | clipboard
当前回答
我写了这个小脚本,它把猜测工作从复制/粘贴命令中去掉。
该脚本的Linux版本依赖于系统中已经安装的xclip。这个脚本叫做剪贴板。
#!/bin/bash
# Linux version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard # Pipe someapp's output into clipboard
# clipboard | someapp # Pipe clipboard's content into someapp
#
if command -v xclip 1>/dev/null; then
if [[ -p /dev/stdin ]] ; then
# stdin is a pipe
# stdin -> clipboard
xclip -i -selection clipboard
else
# stdin is not a pipe
# clipboard -> stdout
xclip -o -selection clipboard
fi
else
echo "Remember to install xclip"
fi
该脚本的OS X版本依赖于pbcopy和pbpaste,它们已预安装在所有mac电脑上。
#!/bin/bash
# OS X version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard # Pipe someapp's output into clipboard
# clipboard | someapp # Pipe clipboard's content into someapp
#
if [[ -p /dev/stdin ]] ; then
# stdin is a pipe
# stdin -> clipboard
pbcopy
else
# stdin is not a pipe
# clipboard -> stdout
pbpaste
fi
使用脚本非常简单,因为您只需像这两个示例中所示的那样通过管道输入或输出剪贴板。
$ cat file | clipboard
$ clipboard | less
其他回答
在Wayland上的xcopy似乎不工作,使用wl-clipboard代替。 比如戴着软呢帽
sudo dnf install wl-clipboard
tree | wl-copy
wl-paste > file
一种方法是:
安装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
有一个方法可以在不安装xclip/xsel的情况下工作,如果您没有sudo访问权限,这个方法非常有用。
你只需要安装vimx,这是VIM +剪贴板支持。你可以在大多数发行版中找到它。
将脚本保存为~/copy_to_clipboard.sh,
#!/bin/sh
if [ -z "$1" ]
then
str=" "
else
str=$1
fi
vimx -u NONE -U NONE -N -c "let @a=\".\"" -c "let @*= \"$str\" " -c " put a " -c "sleep 2" -c " q!"
赋予执行权限:chmod +x ~/copy_to_clipboard 并调用它:
~/copy_to_clipboard.sh STRING
出于某种原因,您需要设置一个虚拟的@a寄存器,并将其粘贴到临时文件上。否则剪贴板寄存器将无法正确设置。 最后丢弃临时Vim文件。
你的剪贴板将被设置,你可以用鼠标中点击粘贴它
这是Arch Linux用户的一个很好的解决方案。用pacman安装xsel,如下所示:
sudo pacman -S xsel
在~/中创建别名。Bashrc文件,比如:
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
用源代码重新加载终端:
source ~/.bashrc
像上面提到的那样使用它:
cat your_file.txt | pbcopy
供参考,在~/中填充所有别名是很好的做法。别名并在。bashrc文件中调用它
我使用Parcellite和xsel复制上次提交消息从git到我的剪贴板管理器(由于某种原因xclip不工作):
$ git log -1 --pretty=%B | xsel -i -b