バイナリファイルをエンコードする
uuencode
と
uudecode
は、単純なアスキーデータしかサポートしていない
伝送路を用いて、バイナリファイルを送るために使われる。
uuencode
は
file
(デフォルトでは標準入力) を読み込み、
エンコードしたものを標準出力に書き出す。
エンコードには表示可能なアスキー文字のみが使われる。
このデータには
uudecode
が使うファイルのアクセス権とオペランド名
name
が含まれる。
name
が
/dev/stdout
の場合、
結果は標準出力に書き出される。
デフォルトでは、標準的な UU エンコーディング形式が使われる。
オプション
-m
がコマンドラインから指定されると、
base64
エンコーディングが代わりに使われる。
uudecode
は、uuencode された
files
(デフォルトでは標準入力) を元の形に変換する。
結果のファイルは、name (-o オプションが指定された場合は、
outfile )
という名前が付けられ、
setuid と実行ビットが保存されない以外は、
元のファイルと同じアクセス権を持つ。
outfile
や
name
が /dev/stdout の場合、結果は標準出力に書き出される。
uudecode
は、(uuencode 部分の) 前後のすべての行を無視する。
プログラムは、(UU と base64 の) どちらのエンコード形式が使われているかを、
自動的に判断することができる。
uudecode
が実行されると、ファイル ``src_tree.tar.Z'' が作られる。
このファイルは、uncompress した後、
元のソースツリーを (tar で) 取り出すことができる。
tar cf - src_tree | compress | uuencode src_tree.tar.Z | mail sys1!sys2!user
uudecode
に 2 つ以上のファイルを渡して -o オプションを指定した場合や、
エンコードする複数のファイル中に同じ
name
が 2 つ以上あった場合、結果は期待したようにはならないだろう。
エンコードされた形式では、UU エンコードの場合 37%、
base64 エンコードの場合 35% サイズが大きくなる
(3 バイトのデータが 4 バイト + 制御情報になる)。
uuencode
コマンドは BSD 4.0 で登場した。