UNIX: バイナリファイルのエンコードコマンド
UNIX標準コマンド「uuencode」「uudecode」を使えば、
バイナリファイルをASCII文字列に変換(エンコード)したり、元に戻すことが可能である。
・基本的な使い方
$ uuencode /bin/pydoc pydoc
begin 755 pydoc
M(R$O=7-R+V)I;B]P>71H;VX*"FEM<&]R="!P>61O8PII9B!?7VYA;65?7R ]
>/2 G7U]M86EN7U\G.@H@(" @<'ED;V,N8VQI*"D*
end
$ uuencode pydoc < /bin/pydoc
begin 755 pydoc
M(R$O=7-R+V)I;B]P>71H;VX*"FEM<&]R="!P>61O8PII9B!?7VYA;65?7R ]
>/2 G7U]M86EN7U\G.@H@(" @<'ED;V,N8VQI*"D*
end
復元の時のために、実際のデータとは別に「ファイル名」を指定しないといけない。
・「-m」をつけると、Base64変換ができる
$ uuencode -m /bin/pydoc pydoc
begin-base64 755 pydoc
IyEvdXNyL2Jpbi9weXRob24KCmltcG9ydCBweWRvYwppZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgogICAgcHlkb2MuY2xpKCkK
====
・通常はエンコード結果をファイルに書き出して使う
$ date > date.txt
$ uuencode ./date.txt date.txt > ./date.enc
$ cat ./date.enc
begin 644 date.txt
L,C Q,>6YM# XYIR(,3'FEZ4@*.:<J"D@,C+FF8(T,.6(AC XYZ>2($I35 H
end
$ rm -i ./date.txt
rm: remove regular file `./date.txt'? y
$ uudecode ./date.enc
$ cat ./date.txt
2011年08月11日 (木) 22時40分08秒 JST
日付を出力した「date.txt」をエンコード。元ファイルを消してデコード。正しく復元できたことがわかる。
・圧縮してからエンコードすると、サイズを節約できる
$ gzip -c ./date.txt | uuencode date.txt > ./date.enc
0 件のコメント:
コメントを投稿