每当我使用 xclip 时,命令输出都会直接显示在剪贴板中,但我还需要在终端上看到它:
我已经使用管道和 & 尝试过这个命令|&
:
pwd |& xclip -rmlastnl -selection clipboard
但不起作用(输出直接到剪贴板,但我在终端上看不到它)。
每当我这样做时,预期的结果很简单:
pwd | xclip
我应该在 shell 上得到两个输出:
路径/工作/目录
在我的剪贴板上也有同样的结果。
感谢@raminnietzsche 的提示,我找到了解决方案:
由于我使用的是 KDE,我需要将复制字符串发送到默认剪贴板。所以我用这个命令实现了这个:
xclip -rmlastnl -selection clipboard
由于复制的字符串进入主剪贴板,所以当我们使用 xclip -o 时应该使用相同的选项。所以实现我想要的代码应该是这个:
pwd | xclip -rmlastnl -selection clipboard | xclip -o -rmlastnl -selection clipboard
问题在于,使用管道命令似乎同时运行,因此粘贴内容(带有xclip -o
等...)将是已经存储的内容,而不是新内容。换句话说,它将复制命令输出,但会粘贴最后复制的内容。
为了解决这个问题,我使用&&
而不是第二个|
,以便仅在复制发生后粘贴。
为了时间和清晰起见,我还在我的 zsh(或 bash)配置上创建了一些别名:
alias copy="xclip -rmlastnl -selection clipboard"
alias past="xclip -o -rmlastnl -selection clipboard"
所以工作命令是:
pwd | copy && past