mar*_*cog 879 linux macos bash clipboard
是否可以在Bash中管道进出剪贴板?
无论是与设备手柄之间的管道连接还是使用辅助应用程序,我找不到任何东西.
例如,如果/dev/clip是链接到剪贴板的设备,我们可以这样做:
cat /dev/clip # Dump the contents of the clipboard
cat foo > /dev/clip # Dump the contents of "foo" into the clipboard
Run Code Online (Sandbox Code Playgroud)
lhu*_*ath 803
你有点暧昧.我希望你可能是X内部想要把东西放在X xclip剪贴板中的Linux用户.
重要的是要了解xclip -selection c没有剪贴板.没有"剪贴板"这样的东西,因为pbcopy可以在Windows,Mac OS X,许多其他操作系统,X内部,X外部运行......更不用说X本身有三个不同的剪贴板.你可以处理很多剪贴板.通常,您要与之交谈的剪贴板具有一个实用程序,可让您与之交谈.
在X的情况下,是的,有gpm(和其他人).screen将数据发送到剪贴板,在大多数应用程序中使用Ctrl-C,Ctrl-V.
如果您正在尝试与Mac OS X剪贴板通信,那就是readreg.
如果您处于Linux终端模式(没有X),那么您可能需要查看/dev/clipboard.
还有GNUclip,它有一个剪贴板.要把东西放在那里,看看xclip命令" xclip -selection c".
在Windows/cygwin下,使用pbcopy或gpm用于较新版本的Windows(至少Windows 10).
dou*_*oug 261
确保您使用别名,xclip="xclip -selection c"
否则您不能只使用Ctrl+ v将其粘贴到其他位置.
echo test | xclip
Run Code Online (Sandbox Code Playgroud)
Ctrl+v === test
tle*_*leb 169
# You can install xclip using `apt-get`
apt-get install xclip
# or `pacman`
pacman -S xclip
# or `dnf`
dnf install xclip
Run Code Online (Sandbox Code Playgroud)
如果您没有访问apt-get,也没有pacman,也没有dnf,来源可在SourceForge上.
在~/.bash_aliases,添加:
alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"
Run Code Online (Sandbox Code Playgroud)
不要忘记使用. ~/.bash_aliases或重新启动配置文件来加载新配置.
在~/.config/fish/config.fish,添加:
abbr setclip "xclip -selection c"
abbr getclip "xclip -selection c -o"
Run Code Online (Sandbox Code Playgroud)
不要忘记通过重新启动终端来重新启动fish实例以应用更改.
您现在可以使用setclip和getclip,例如:
$ echo foo | setclip
$ getclip
foo
Run Code Online (Sandbox Code Playgroud)
jtr*_*ove 138
例如,如果你跑
cat ~/.bashrc | pbcopy
Run Code Online (Sandbox Code Playgroud)
该~/.bashrc文件的内容可用于使用Cmd+ v快捷键进行粘贴.
Zor*_*che 36
尝试
xclip - command line interface to X selections (clipboard)
Run Code Online (Sandbox Code Playgroud)
And*_*510 24
在Debian/Ubuntu/Mint上的xsel
# append to clipboard:
cat 'the file with content' | xsel -ib
# or type in the happy face :) and ...
echo 'the happy face :) and content' | xsel -ib
# show clipboard
xsel -b
# Get more info:
man xsel
Run Code Online (Sandbox Code Playgroud)
安装
sudo apt-get install xsel
Run Code Online (Sandbox Code Playgroud)
the*_*les 16
哇,我简直不敢相信这个问题有多少答案.我不能说我已经尝试了所有这些,但我已经尝试了前3或者4,但它们都不适合我.对我有用的是一个答案,该答案位于一个名为doug的用户写的评论中.由于我觉得它很有帮助,我决定重新回答一下.
安装xcopy实用程序,当您在终端时,输入:
复制
Thing_you_want_to_copy|xclip -selection c
Run Code Online (Sandbox Code Playgroud)
糊
myvariable=$(xclip -selection clipboard -o)
Run Code Online (Sandbox Code Playgroud)
我注意到很多答案推荐pbpaste和pbcopy.如果您使用这些实用程序但由于某些原因它们在您的仓库中不可用,您可以随时为xcopy命令创建别名并将其命名为pbpaste和pbcopy.
alias pbcopy="xclip -selection c"
alias pbpaste="xclip -selection clipboard -o"
Run Code Online (Sandbox Code Playgroud)
那么它看起来像这样:
Thing_you_want_to_copy|pbcopy
myvariable=$(pbpaste)
Run Code Online (Sandbox Code Playgroud)
Eva*_*rad 14
使用clipboard-cli.它适用于macOS,Windows,Linux,OpenBSD,FreeBSD和Android,没有任何实际问题.
安装它:
npm install -g clipboard-cli
那你可以做
echo foo | clipboard
如果你愿意,你可以别名cb通过把你的下面.bashrc,.bash_profile或.zshrc:
alias cb=clipboard
kno*_*wer 12
在Windows子系统上,您可以使用clip.exe将其复制到剪贴板.
cat file | clip.exe
Run Code Online (Sandbox Code Playgroud)
请记住使用|管道命令.而不是>命令,因为那不起作用.
Wol*_*ahl 11
这是一个随时可用的bash脚本,用于读取可在多个平台上运行的剪贴板.如果您添加功能(例如更多平台),请在此处编辑脚本.
#!/bin/bash
# WF 2013-10-04
# multi platform clipboard read access
# supports
# Mac OS X
# git shell / Cygwin (Windows)
# Linux (e.g. Ubuntu)
#
# display an error
#
error() {
echo "error: $1" 1>&2
exit 1
}
#
# getClipboard
#
function getClipboard() {
os=`uname`
case $os in
# git bash (Windows)
MINGW32_NT-6.1)
cat /dev/clipboard;;
# Mac OS X
Darwin*)
pbpaste;;
# Linux
Linux*)
# works only for X clipboard - a check that X is running might be due
xclip -o;;
*)
error "unsupported os $os";;
esac
}
tmp=/tmp/clipboard$$
getClipboard >$tmp
cat $tmp
# comment out for debugging
rm $tmp
Run Code Online (Sandbox Code Playgroud)
仅适用于Mac:
echo "Hello World" | pbcopy
pbpaste
Run Code Online (Sandbox Code Playgroud)
这些位于/usr/bin/pbcopy和/usr/bin/pbpaste.
在Wayland上, xcopy 似乎不起作用。请改用wl-clipboard。
例如,在Fedora上:
sudo dnf install wl-clipboard
tree | wl-copy
wl-paste > file
Run Code Online (Sandbox Code Playgroud)
小智 7
我刚刚在我的KDE环境中搜索了相同的内容。
请随意使用clipcopy和clippaste。
关键DE:
> echo "TEST CLIP FROM TERMINAL" | clipcopy
> clippaste
TEST CLIP FROM TERMINAL
Run Code Online (Sandbox Code Playgroud)
小智 6
这是一个简单的 Python 脚本,可以满足您的需求:
#!/usr/bin/python
import sys
# Clipboard storage
clipboard_file = '/tmp/clipboard.tmp'
if(sys.stdin.isatty()): # Should write clipboard contents out to stdout
with open(clipboard_file, 'r') as c:
sys.stdout.write(c.read())
elif(sys.stdout.isatty()): # Should save stdin to clipboard
with open(clipboard_file, 'w') as c:
c.write(sys.stdin.read())
Run Code Online (Sandbox Code Playgroud)
将其保存为路径中某处的可执行文件(我将其保存到/usr/local/bin/clip. 您可以通过管道将内容保存到剪贴板...
echo "Hello World" | clip
Run Code Online (Sandbox Code Playgroud)
您可以将剪贴板中的内容通过管道传输到其他程序...
clip | cowsay
_____________
< Hello World >
-------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Run Code Online (Sandbox Code Playgroud)
单独运行它只会输出剪贴板中的内容。
小智 6
xsel -b
Run Code Online (Sandbox Code Playgroud)
为 X Window 执行此操作,并且它大部分已经安装。查看xsel的手册页是值得付出努力的。
复制并粘贴到Windows中的剪贴板(Cygwin):
看到:
$ clip.exe - ?
CLIP描述:将命令行工具的输出重定向到Windows剪贴板.然后可以将此文本输出粘贴到其他程序中.参数列表:/?显示此帮助消息.示例:DIR | CLIP将当前目录列表的副本放入Windows剪贴板.CLIP <README.TXT将readme.txt中的文本副本放在Windows剪贴板上.
还存在getclip(可以代替shift + ins!),putclip(echo oaeuoa | putclip.exe把它放到剪辑中)
我找到了一个很好的参考:How to target multiple selections with xclip
就我而言,我想将内容粘贴到剪贴板上并查看粘贴的内容,因此我还使用了tee带有文件描述符的命令:
echo "just a test" | tee >(xclip -i -selection clipboard)
Run Code Online (Sandbox Code Playgroud)
>()是过程替换的一种形式。Bash 用文件描述符的路径替换每个文件描述符,该文件描述符连接到括号内的程序的标准输入。
该tee命令派生出您的命令,允许您“传输其内容”并在标准输出“stdout”上查看结果。
您还可以创建别名以获取和写入剪贴板,让您可以像在 Mac 上一样使用“pbcopy”和“pbpaste”。就我而言,当我使用Z shell ( zsh) 时,我的别名文件中有这个:
(( $+commands[xclip] )) && {
alias pbpaste='xclip -i -selection clipboard -o'
alias pbcopy='xclip -selection clipboard'
}
Run Code Online (Sandbox Code Playgroud)
在(( $+command[name] ))Z轴壳测试,如果命令“名”是安装在系统上,然后这两个别名是与分组{}。该&&是一个二进制AND ; 如果 a 则 b,因此如果您有 xclip,则将设置别名。
echo "another test" | tee >(pbcopy)
Run Code Online (Sandbox Code Playgroud)
要获取剪贴板内容,只需键入:
pbpaste | "any-command-you-need-here"
Run Code Online (Sandbox Code Playgroud)
pbcopy 内置于 OS X 中:
复制文件.bash_profile的内容:
cat ~/.bash_profile | pbcopy
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
463901 次 |
| 最近记录: |