素の Windows からリモートホストの macOS や Linux にクリップボードのテキストを流す

PowerShell で次を実行

$OutputEncoding = [Console]::OutputEncoding
Get-Clipboard -Format Text | ssh macOS_host "iconv -f sjis -t utf8 | pbcopy"
Get-Clipboard -Format Text | ssh Linux_host "iconv -f sjis -t utf8 | xsel --clipboard --input"

上記のコマンドで,リモートの macOS ホストと Linux ホストそれぞれのクリップボードにローカルのクリップボードのテキストが転送されます。

最初のほうで OutputEncoding を上書きしているのは,これをしないと Get-Clipboard コマンドレットの出力が us-ascii でエンコードされるので,クリップボードの中身が日本語だと化けます。ちなみに ASCII のテキストなら

Get-Clipboard -Format Text | ssh macOS_host "pbcopy"
だけで済む。

逆に,macOS や Linux のホストのクリップボードを手元に持ってきたいときは,macOS なら pbpaste,Linux なら xsel --clipboard --output を使ってください。

あと言わないでもわかることだとは思うけど,PowerShell の Get-Clipboard/Set-Clipboard コマンドレットや macOS の pbcopy/pbpaste コマンドはデフォルトで使えますが Linux の xsel コマンドは自分でインストールしなくても必ず存在するとは限りません。

ちなみに,とくに Windows ホストに外部コマンドをインストールしてはいけない縛りとかないのなら,win32yank を導入するのはオススメ。

このブログの人気の投稿

ssh-rsa,非推奨のお知らせ

GRUBとEFIの組み合わせで使うときのメモ またはEFI全般のtips

prnというフォルダが作れない理由がビル・ゲイツのあだ名というのはガセである件