小さなバイナリを受け渡ししたいけれどファイル共有サービスとか使うのも面倒だしbase64 にしてgist に貼ってしまおうと思ったのですが,nkf コマンドでbase64 にエンコードして,確認のためデコードしてみたら違う結果に.
% cat original | nkf -MB > hoge
% cat hoge | nkf -mB > fuga
% diff original fuga
バイナリーファイル original とfuga は異なります
% ls -l
-rw-r--r-- 1 mk mk 4080 5月 29 20:38 original
-rw-r--r-- 1 mk mk 5422 5月 29 20:52 hoge
-rw-r--r-- 1 mk mk 3999 5月 29 20:52 fuga
Google+ にこのことを書いたら
https://plus.google.com/u/0/103792214056489833385/posts/bbVzNS7RNTR
Masakazu Takahashiさんにコメントをいただきました.
試したところ、デコードのときに入力文字コードを明示的に指定する必要があるようです。
% nkf -mBW hoge > fuga
そんなこんなで、base64のエンコード/デコードだけなら、base64コマンドのほうが確実かも。
ということで,base64 コマンドならGNU Coreutils に含まれているので大抵の環境で使えるしってことでbase64 コマンドで貼り付けました.
% cat jl-bct.bct | xz | base64 | gist-paste
ついでに復元はこんな感じで
% wget -O – https://gist.github.com/matoken/b2041569865a82895082/raw/53b85e9333e3b837d24714a8e529dde69ec788e9/jl-bct.bct.xz.base64 | base64 -d | xzcat > jl-bct.bct