web-dev-qa-db-ja.com

「xclip」と「xsel」

Xクリップボードにアクセスするための2つのコマンドラインツール(2つの異なるパッケージ)があります。

  • xclip
  • xsel

私はそれら2つの違いを知り、どのケースでどちらを使用するかの推奨事項を聞きたいです。

42
Byte Commander

xclipxselの両方は、テキストを つの異なる選択 (デフォルトではプライマリ選択)に保存できます。経験から、基本的な選択は基本的にハイライトであり、マウスの中央クリック(ノートパソコンの左右両方のタッチパッドキーを押すことに対応)でリリースされることを知っています。クリップボードは伝統的です CtrlV

ただし、両方のmanページを調べると、xclipが1つの側面で勝っていることがわかりました。入力ファイルからの読み取りです。

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)

もちろん、xselでシェルリダイレクトを使用して、それを回避することもできます。

xieerqi:
$ xsel --clipboard < testfile.txt                                              

xieerqi:
$ HELLOWORLD
mksh: HELLOWORLD: not found

xclipは、クリップボードの内容をファイルに出力できるという事実でも勝ちます(これは、PRIMARY選択、つまりハイライトをリダイレクトする場合におそらく便利です)。 xselは標準出力への出力のみを提供します

26

@Serg answer に加えて、 Arch WikiのTmuxページ からの情報があります。これは特定の特定の場合に役立ちます

xselとは異なり、[xclip]は現在のロケールに適合しない生のビットストリームを印刷するのに適しています。それにもかかわらず、xclipはtmuxのバッファーから読み取った後STDOUTを閉じないため、xclipの代わりにxselを使用する方が適切です。そのため、tmuxはコピータスクが完了したことを認識せず、xclipの終了を待機し続けるため、tmuxは応答しなくなります。回避策は、xclipのSTDOUTを/ dev/nullにリダイレクトすることです

20
PlasmaBinturong

心に留めておくべきこと、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
15
Martin K

xclipを使用します。これはxselがscreenshostなどのクリップボードからバイナリデータを抽出できないためです。たとえば、スクリーンショットをクリップボードに保存します。

$ maim -s | xclip -selection clipboard -t image/png

次に、ファイルに保存して出力を比較します。

$ 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
6