Byt*_*der 73 software-recommendation xclip xsel
有两个命令行工具(在两个不同的包中)可以访问 X 剪贴板:
xclip
xsel
我很想知道这两者之间的区别,并听取建议在哪些情况下使用哪个。
Ser*_*nyy 40
二者xclip
并xsel
可以存储文本到3点不同的选择(默认为初级选择)。根据经验,我知道主要选择基本上是您通过单击鼠标中键突出显示并释放的内容(这对应于同时按下笔记本电脑上的左右触摸板键)。剪贴板是传统的CtrlV.
man
然而,通过检查两者的页面,我发现xclip
在一方面是胜出的——从输入文件中读取:
xieerqi:
$ cat testfile.txt
HELLOWORLD
xieerqi:
$ xclip -selection clipboard testfile.txt
xieerqi:
$ HELLOWORLD
mksh: HELLOWORLD: not found
xieerqi:
$ xsel testfile.txt
Usage: xsel [options]
Manipulate the X sele . . . (usage page goes on)
Run Code Online (Sandbox Code Playgroud)
当然你可以使用 shell 重定向xsel
来解决这个问题
xieerqi:
$ xsel --clipboard < testfile.txt
xieerqi:
$ HELLOWORLD
mksh: HELLOWORLD: not found
Run Code Online (Sandbox Code Playgroud)
xclip
还因为您可以将剪贴板的内容输出到文件(当您想重定向 PRIMARY selection ,即高亮显示时这可能很有用)。 xsel
只提供输出到标准输出
Pla*_*ong 29
除了@Serg 的回答之外,Arch Wiki中的Tmux 页面还有一条信息在某些特定情况下很有用:
与 xsel 不同,[xclip] 在打印不适合当前语言环境的原始比特流时效果更好。然而,使用 xsel 更简洁,因为 xclip
STDOUT
在从 tmux 缓冲区读取后不会关闭。因此,tmux 不知道复制任务已完成,并继续等待 xclip 终止,从而导致 tmux 无响应。解决方法是重定向STDOUT
到/dev/null
:
小智 21
要记住的其他事情,xsel
依赖项少于xclip
:
# apt-cache depends xsel
xsel
Depends: libc6
Depends: libx11-6
Conflicts: xsel:i386
# apt-cache depends xclip
xclip
Depends: libc6
Depends: libx11-6
Depends: libxmu6
Conflicts: xclip:i386
Run Code Online (Sandbox Code Playgroud)
ana*_*nik 10
使用xclip
,因为xsel
不能从剪贴板中提取二进制数据,例如屏幕截图。例如,将屏幕截图保存到剪贴板:
$ maim -s | xclip -selection clipboard -t image/png
Run Code Online (Sandbox Code Playgroud)
然后保存到文件并比较输出:
$ xclip -o -selection clipboard > 1xclip
$ xsel -o --clipboard > 1xsel
$ ls -go 1*
-rw-rw-r-- 1 11948 Sep 26 20:13 1xclip
-rw-rw-r-- 1 0 Sep 26 20:13 1xsel
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34475 次 |
最近记录: |