Xクリップボードにアクセスするための2つのコマンドラインツール(2つの異なるパッケージ)があります。
xclip
xsel
私はそれら2つの違いを知り、どのケースでどちらを使用するかの推奨事項を聞きたいです。
xclip
とxsel
の両方は、テキストを つの異なる選択 (デフォルトではプライマリ選択)に保存できます。経験から、基本的な選択は基本的にハイライトであり、マウスの中央クリック(ノートパソコンの左右両方のタッチパッドキーを押すことに対応)でリリースされることを知っています。クリップボードは伝統的です 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
は標準出力への出力のみを提供します
@Serg answer に加えて、 Arch WikiのTmuxページ からの情報があります。これは特定の特定の場合に役立ちます:
xselとは異なり、[xclip]は現在のロケールに適合しない生のビットストリームを印刷するのに適しています。それにもかかわらず、xclipはtmuxのバッファーから読み取った後STDOUTを閉じないため、xclipの代わりにxselを使用する方が適切です。そのため、tmuxはコピータスクが完了したことを認識せず、xclipの終了を待機し続けるため、tmuxは応答しなくなります。回避策は、xclipのSTDOUTを/ dev/nullにリダイレクトすることです
心に留めておくべきこと、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
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