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」を実行したりした時)で即終了する。