PCから 他のPCへ ファイルを転送するコマンドラインツール「magic-wormhole」の紹介です。
ファイルを他のコンピューターに送信といえば、どのような方法が考えられるでしょうか?
- 圧縮してメールに添付
- USBメモリからの転送
- クラウドサービスを通じて
- 社内であれば共有サーバーにアップロード
...
考えれば上記の他にも 沢山の方法がありそうですが、
もっと手軽にファイルを送信出来るCLIツールが「magic-wormhole
」です。
- PCから他のPC ( 1: 1 ) へ ファイルやテキストの送信が出来る
( コンピューター同士を繋ぎ、 1:1 でファイルの送信ができる )

magic-wormholeはPythonで作られたCLIツールなので、
コマンドライン上から' pip
'コマンドを使ってインストールします。
# pip コマンドを使ってインストール
pip install magic-wormhole
# pip3 install magic-wormhole
幾つか依存しているパッケージもあるので、
各Linuxディストリビューションに合ったパッケージのインストールが必要です。
# 依存パッケージ ( ubuntu )
apt-get install python-pip build-essential python-dev libffi-dev libssl-dev
# 依存パッケージ ( Fedora )
dnf install python-pip python-devel libffi-devel openssl-devel gcc-c++ libtool redhat-rpm-config
Macを使っている人なら、' brew
' コマンドを使ってインストールすることも出来ます。
# Mac OS のhomebrewコマンドでインストールする場合
brew install magic-wormhole
正しくインストールされると ' wormhole
' コマンドが使えるようになります。
magic-wormholeは " ファイルを送る側のホスト
"、
" ファイルを受け取るクライアント
"
この2つの関係で動作 ( ファイルの受け渡し )します ... が使い方はとても簡単です。
ファイルを送るホスト側が ' wormhole send 転送するファイル名
' コマンドを実行すると、
ダウンロード用のToken( code )がその場で発行され、待受状態が始まります。
send
' コマンドを使った時のホスト側のイメージ 
testFile.md
' というファイルを転送してみました ( '
755546-document-dwelling
' が Token ( code ) ) 
ホストがファイルを送る 待受状態になれば、次は受取側です。
' whormhole receive
' コマンドを実行すると Token ( code ) 入力が求めら、
ホスト側が発行したToken ( code )を入力するとファイルの転送が開始されます。
( * ファイルのダウンロードが完了すると、ホスト側の待受状態が自動的に終了、発行されたcodeも破棄されます )
wormhole recieve
' コマンドを実行して、ホストが転送したファイルを受け取りました 
# wormholeに用意されているコマンド
wormhole send FILE # 送信 : ファイル、ディレクトリの送信も可能
wormhole receive # ファイル or ディレクトリの受取
wormhole ssh # SSHおパブリックkeyを使う場合
# --textオプションをつければ テキストだけを送信することも可能です
wormhole send --text メッセージ # 受信側からは文字列を受信(*この場合は'メッセージ')
* 実際に magic-wormhole を使った動画 ( * 左が送信側、右が受け取り側 )
( * 上の動画では Mac OSの同一コンピューター上、 LAN内でファイルの送信していますが、
リモートサーバー上( Mac -> Ubuntu ) 、
その他、 スマホ回線のテザリング環境 [ Mac -> Mac(テザリング) ] でも問題なく使用できました )
以上が magic-wormhole の紹介でした。
" ○○ファイルを -> ○○に " と言った 1 to 1 の 明確な送信先が決まっている場合に
確実に 届けることが出来るので
共有したくない ファイルやテキストを送信したい時に使うと 効果が発揮されそうです。
また、専用サーバー、専用クライアントが必要ないのも便利なところですね。
GitHub : warner/magic-wormhole