它是可能的管道到/从剪贴板在Bash?
无论是连接到设备手柄还是使用辅助应用程序,我都找不到任何东西。
例如,如果/dev/clip是一个连接到剪贴板的设备,我们可以这样做:
cat /dev/clip # Dump the contents of the clipboard
cat foo > /dev/clip # Dump the contents of "foo" into the 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
当前回答
在macOS系统中,请使用pbpaste。
例如:
更新剪贴板
pbpaste | ruby -ne ' puts "\|" + $_.split( )[1..4].join("\|") ' | pbcopy
其他回答
安装
# 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
在~ /。bash_aliases,添加:
alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"
不要忘记使用。~ /。Bash_aliases或重新启动配置文件。
Fish
在~ / . config /鱼/配置。鱼,添加:
abbr setclip "xclip -selection c"
abbr getclip "xclip -selection c -o"
不要忘记通过重新启动终端来重新启动fish实例,以便应用更改。
使用
你现在可以使用setclip和getclip,例如:
$ echo foo | setclip
$ getclip
foo
安装xcopy实用程序,当你在终端中,输入:
Copy
Thing_you_want_to_copy | xclip -selection c
粘贴
myvariable=$(xclip -selection clipboard -o)
我注意到很多答案推荐pbpaste和pbcopy。如果您喜欢这些实用程序,但由于某种原因它们在存储库中不可用,那么您总是可以为xcopy命令创建别名,并将它们称为pbpaste和pbcopy。
alias pbcopy="xclip -selection c"
alias pbpaste="xclip -selection clipboard -o"
所以它看起来是这样的:
Thing_you_want_to_copy | pbcopy
myvariable=$(pbpaste)
一个名为doug的用户在我的评论中给出了一个答案。既然我发现它很有帮助,我决定在回答中重申一遍。
昨天我发现自己遇到了一个问题:“如何在不同的用户会话之间共享剪贴板?”当使用Ctrl + Alt + F7 - Ctrl + Alt + F8切换会话时,实际上,您无法粘贴复制的内容。
我提出了以下快速和肮脏的解决方案,基于一个命名管道。它确实很简陋,但我发现它很实用:
user1@host:~$ mkfifo /tmp/sharedClip
然后在发送终端
user1@host:~$ cat > /tmp/sharedClip
最后,在接收端:
user2@host:~$ cat /tmp/sharedClip
现在,你在第一个终端中输入或粘贴任何东西,并且(在点击返回后),它将立即出现在接收终端中,从那里你可以复制和粘贴你喜欢的任何地方。
当然,这并不是严格地从user1的剪贴板中获取内容,使其在user2的剪贴板中可用,而是需要额外的粘贴和复制单击。
确保使用别名xclip="xclip -selection c" 否则你将无法使用Ctrl+v进行粘贴。
例子: 执行echo -n test | xclip命令后,Ctrl+v将粘贴test
在Windows子系统for Linux (WSL)上,您可以使用clip.exe复制到剪贴板:
cat file | clip.exe
请记住使用|管道命令。而不是>命令,因为这将不起作用。