WindowsのWSLからテキストのコピペでSSH経由でファイルを送る方法

WSLから clip.exe というコマンドでテキストをクリップボードにコピーできることを知りました。

なので、こんなことができます。WindowsからTera Termなどでどこか遠くのサーバに接続し、Windowsにあるファイルをテキスト貼り付けで遠くのサーバに送信です。scpとかrsyncとか不要です。

<ローカルファイルをクリップボードにコピー>

WSL上で、適当なファイルをtarコマンドとbase64コマンドでテキストにしてクリップボードに送ります。以下のコマンドはカレントディレクトリにあるJPGファイルすべてをコピーしています。

$ tar cvzf - *.jpg  | base64 | clip.exe

クリップボードから遠くにペースト>

遠くのサーバに接続しているTera Termなどで、以下のコマンドでエンターを押した後、マウスの右クリックなどでクリップボードからの貼り付けをします。Tera Termであれば改行を含むテキストの貼り付け確認画面がでるかもしれません。

$ base64 -d | tar xvzf -

貼り付けると、長々とBASE64のテキストがスクロールされます。Ctrl-Dを押すと貼り付け完了で、サーバのカレントディレクトリにファイルがただちに解凍されます。

ファイルが大きいとクリップボードを介するテキストが長くなりますので、ファイルサイズに上限があるかもしれません。