コマンドラインからクリップボードにアクセス on linux
bash からクリップボードにアクセスしたい時がたまにある.こういう感じのことをしたい
$ echo "Hi there!" > /dev/clipboard
# あるいは
$ echo "Hi there!" | writeclipboard
$ readclipboard
ジャストの質問:linux - Pipe to/from Clipboard - Stack Overflow
lhunath による回答: (Licensed under CC-BY-SA)
この質問は少し曖昧.多分
X
を使ってる linux ユーザで,X の PRIMARY clipboard について読み書きしたいんだろう.
bash
自体はクリップボードを持ってなくて,これを意識するのは大事.bash
ってのは Windows でも linux でも,X の中でも外でも, とにかくいろんな環境で動くのだ.X 自体だって3つクリップボードを持ってる.従って bash にとって, 単に「クリップボード」と言った時にそれと決まるようなものはなくて,どれを扱おうとしているのかはわからない. 大抵はなにかしたい相手のクリップボードにはそれ用のユーティリティがついてくる.X だったら
xclip
(など).Mac OS X なら
pbcopy
.Linux で,X のない端末モードであれば
gpm
かな.GNU Screen もキーボードを持ってるね.これについては
screen
のコマンドのreadreg
というのがある.Window/cygwin なら
/dev/clipboard
がある.
なお,
xclip -selection c
で,ほとんどのアプリケーションで^C
,^V
で動くクリップボードにアクセスできるよ.
というわけで,Ubuntu + X ならこれで解決する.
# read from clipboard
xclip -o -selection c
# write to clipboard
echo "Hi there!" | xclip -i -selection c
なお,klipper を使ってる状態でもいい感じに動く.便利.