是否可以在 Bash 中管道进出剪贴板?
无论是与设备手柄之间的管道连接还是使用辅助应用程序,我找不到任何东西。
例如,如果/dev/clip
是链接到剪贴板的设备,我们可以这样做:
cat /dev/clip # Dump the contents of the clipboard
cat foo > /dev/clip # Dump the contents of "foo" into the clipboard
你有点暧昧。我希望你可能是 X 内部的 Linux 用户想要把东西放在 X PRIMARY
剪贴板中。
重要的是要理解bash
没有剪贴板。没有 “剪贴板” 这样的东西,因为bash
可以在 Windows,Mac OS X,许多其他操作系统,X 内部,X 外部运行...... 更不用说 X 本身有三个不同的剪贴板。你可以处理很多剪贴板。通常,您要与之交谈的剪贴板具有一个实用程序,可让您与之交谈。
在 X 的情况下,是的,有xclip
(和其他)。 xclip -selection c
将数据发送到剪贴板,该剪贴板在大多数应用程序中使用 Ctrl-C,Ctrl-V。
如果你想与 Mac OS X 剪贴板交谈,那就是pbcopy
。
如果您处于 Linux 终端模式(没有 X),那么您可能需要查看gpm
。
还有GNU screen
,它有一个剪贴板。要把东西放在那里,请查看screen
命令 “ readreg
”。
在 Windows / cygwin 下,对于较新版本的 Windows(至少是 Windows 10),请使用/dev/clipboard
或clip
。
确保使用别名xclip="xclip -selection c"
否则你不能只使用Ctrl + v将其粘贴回另一个地方。
echo test | xclip
Ctrl + v === test
# You can install xclip using `apt-get`
apt-get install xclip
# or `pacman`
pacman -S xclip
# or `dnf`
dnf install xclip
如果您无法访问apt-get
或pacman
,也无法访问dnf
,则源代码可在sourceforge 上获得 。
在~/.bash_aliases
,添加:
alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"
不要忘记使用加载新配置. ~/.bash_aliases
或重新启动您的个人资料。
在~/.config/fish/config.fish
,添加:
abbr setclip "xclip -selection c"
abbr getclip "xclip -selection c -o"
不要忘记通过重新启动终端来重新启动 fish 实例以应用更改。
您现在可以使用setclip
和getclip
,例如:
$ echo foo | setclip
$ getclip
foo