如何使用 xclip 定位多个选择

Ame*_*ina 11 command-line copy-paste xclip

将文本复制到剪贴板时,xclip提供了几个选择目标:

 -selection
    specify which X selection to use, options are:
    "primary" to use XA_PRIMARY (default), 
    "secondary" for XA_SECONDARY 
    "clipboard" for XA_CLIPBOARD
Run Code Online (Sandbox Code Playgroud)

有没有办法针对多个选择?

我尝试了以下选项

  1. echo "Hello world" | xclip -i -selection primary -selection clipboard
  2. echo "Hello world" | xclip -i selection primary | xclip -i selection clipboard
  3. echo "Hello world" | xclip -i selection primary,clipboard

但他们都没有工作。

don*_*sti 16

我尝试了以下选项

echo "Hello world" | xclip -i selection primary | xclip -i selection clipboard  
Run Code Online (Sandbox Code Playgroud)

你真的很接近那里......
如果你使用-f第一个xclip命令,它会将文本打印回标准输出,你可以将它传输到第二个xclip命令:

echo "Hello World" | xclip -i -sel p -f | xclip -i -sel c
Run Code Online (Sandbox Code Playgroud)

来自man xclip

-f, -filter
            when xclip is invoked in the in mode with output level set to
            silent (the defaults), the filter option will cause xclip to print
            the text piped to standard in back to standard out unmodified
Run Code Online (Sandbox Code Playgroud)

  • 如果你的发行版提供了 `xsel`,替代 `xclip`,你可以使用 `echo 'Hello World' | xsel -i -p && xsel -o -p | xsel -i -b`。由于 `xsel` 缺少过滤器选项,它与 `xclip` 略有不同并且效率较低。但是,如果您坚持使用 `xsel`,那么这是解决问题的一种方法。 (2认同)

Chr*_*own 5

我不使用xclip,所以可能有一种我不知道的本机方法。无论如何,假设您的外壳是bash

echo "Hello world" | tee >(xclip -i -selection primary) >(xclip -i -selection clipboard) >/dev/null
Run Code Online (Sandbox Code Playgroud)

>()是过程替换的一种形式。bash将每个替换为文件描述符的路径,该文件描述符连接到括号内的程序的标准输入。