Linux でも pbcopy/pbpaste

Mac OS X で便利だったコマンドの一つが pbcopy/pbpaste。
pbcopy は標準入力から受け取ったデータをクリップボードにコピーし、pbpaste はクリップボードのデータを標準出力にペーストする。
ソースコードをエントリに載せるときや、ダウンローダにコピーした URL を渡すときなどによく使っていた。意外と便利。
Linux にもないものかとググったところ、xclip で同じようなことができるらしい。
標準では入っていなかったので、いつも通り

% sudo apt-get install xclip

でインストール。


しかし、どうやら2バイト文字の扱いに難がありそうだ。
例えば、「表示」という文字列をコピーしてから xclip を使ってみると

% xclip -selection clipboard -o
\u8868\u793a

となってしまう。
これくらいなら perl の力を借りて

% alias pbpaste='xclip -selection clipboard -o | perl -CO -ple "s/\\\\u([0-9a-f]{4})/pack(q(U),hex(\$1))/eg"'
% pbpaste
表示

とできるけど*1、pbcopy の方はなかなかうまくいかない。
素直に GTK で書いた方がいいのかも。

*1:alias の中にパイプを使えるのは zsh だけだっけ?