プログラミング工房 > Linux/C/C++ > Linux便利コマンドリファレンス >

xsel - コマンドラインからXセレクションを操作する

書式

 xsel [オプション]

説明

 XセレクションとはWindowsのクリップボードと同等の機能。XセレクションにはPRIMARY、SECONDARY、CLIPBOARDの3種類があるが、たいていはPRIMARYかCLIPBOARDのどちらかを使えば用が足りる。Windows経験者にとってはCLIPBOARDが一番便利だと思われる。xselは特に指定されなければPRIMARYセレクションを処理対象とする。

 xselはコマンドラインから標準入出力とXセレクションとの間のデータ転送を行う。デフォルトでは、標準入出力が端末の場合セレクションの内容をそのまま出力する。標準出力が端末でない場合も同じ。標準入力が端末でない場合、入力されたデータをセレクションに設定する。標準入出力が共に端末でない場合は、まず現在のセレクションの内容を出力した後で、入力されたデータをセレクションに設定する。

オプション

(入力オプション)

-a, --append
 入力されたデータをセレクションに追加する。-iを含む。
-f, --follow
 ?
-i, --input
 入力されたデータをセレクションに設定する。(出力先がセレクションになる)

(出力オプション)

-o, --output
 セレクションの内容を標準出力に出力する。

(処理オプション)

-c, --clear
 セレクションの内容をクリアする。このオプションはすべての入力オプションよりも優先される。
-d, --delete
 セレクションの内容をクリアすると同時に、内容を設定したプログラムに元データを削除するように要求する。このオプションはすべての入力オプションよりも優先される。

(セレクションオプション)

-p, --primary
 PRIMARYセレクションを処理対象に指定する。デフォルト。
-s, --second
 SECONDARYセレクションを処理対象に指定する。
-b, --clipboard
 CLIPBOARDセレクションを処理対象に指定する。
 (上記3つのオプションは自分より後に入力されたオプションにのみ影響をおよぼす。)
-k, --keep
 PRIMARYおよびSECONDARYセレクションに対して内容を設定したプログラムが終了した後も内容が維持されるようにする(CLIPBOARDセレクションについては、xclipboard(1)のような他のプログラムで行うことが慣習となっている)。このオプションを指定するとすべての入力オプションと出力オプションが無効になる。
-x, --exchange
 PRIMARYセレクションとSECONDARYセレクションの内容を入れ替える。このオプションを指定するとすべての入力オプションと出力オプションが無効になる。

(エンコーディングオプション)

-u, --utf8
 可能であればUTF8形式のセレクションを要求する。

(X オプション)

-d displayname, --display displayname
 使用するサーバを指定する。(X(1)を参照)
-t timeout, --selectionTimeout timeout
 内容取得のためのタイムアウトをミリセカンド単位で指定する。0を指定した場合タイムアウトは無効になる(デフォルト)。

(その他のオプション)

-l filename, --logfile filename
 デタッチされたときのエラーログのためのファイルを指定する。(デフォルトは$HOME/.xsel.log)
-n, --nodetach
 コントロール端末からデタッチしない。このオプションがない場合、xselはinputモード、exchangeモード、keepモードの時、バックグラウンドプロセスになるためにforkする。
-h, --help
 使い方を表示して終了する。
-v, --verbose
 参考情報を出力する。デバッグ用。
--version
 バージョン情報を表示して終了する。

補足

 Xセレクションにはバッファは存在しない。X11におけるセレクションとは、たとえばマウスの中ボタンによるペーストを実行するためにプログラムがセレクションの内容を取得しようとする度ごとに、Xサーバがクライアント同士の通信を仲介する仕組みにすぎない。セレクション内容の変更を実装するために、このプログラムは必要な新しいセレクションを提供するための子プロセスを生成して端末からデタッチする。そしてこの子プロセスは他のプログラムがセレクションを所有した時点(たとえばコンピュータのユーザが次に端末でテキストを選択したり、「xsel -c」を実行したりした時)で即終了する。