uuencode(1) バイナリファイルをエンコードする

書式

uuencode [-m] [ file ] name

uudecode [-o outfile] [ file ]...

説明

uuencodeuudecode は、単純なアスキーデータしかサポートしていない 伝送路を用いて、バイナリファイルを送るために使われる。

uuencodefile (デフォルトでは標準入力) を読み込み、 エンコードしたものを標準出力に書き出す。 エンコードには表示可能なアスキー文字のみが使われる。 このデータには uudecode が使うファイルのアクセス権とオペランド名 name が含まれる。 name/dev/stdout の場合、 結果は標準出力に書き出される。 デフォルトでは、標準的な UU エンコーディング形式が使われる。 オプション -m がコマンドラインから指定されると、 base64 エンコーディングが代わりに使われる。

uudecode は、uuencode された files (デフォルトでは標準入力) を元の形に変換する。 結果のファイルは、name (-o オプションが指定された場合は、 outfile) という名前が付けられ、 setuid と実行ビットが保存されない以外は、 元のファイルと同じアクセス権を持つ。 outfilename が /dev/stdout の場合、結果は標準出力に書き出される。 uudecode は、(uuencode 部分の) 前後のすべての行を無視する。 プログラムは、(UU と base64 の) どちらのエンコード形式が使われているかを、 自動的に判断することができる。

次の例では、ソースツリーを (tar で) まとめ、compress し、 uuencode して、他のシステム上のユーザーにメールで送っている。 相手のシステムで uudecode が実行されると、ファイル ``src_tree.tar.Z'' が作られる。 このファイルは、uncompress した後、 元のソースツリーを (tar で) 取り出すことができる。

tar cf - src_tree | compress | uuencode src_tree.tar.Z | mail sys1!sys2!user

準拠

この実装は P1003.2b/D11 に準拠する。

バグ

uudecode に 2 つ以上のファイルを渡して -o オプションを指定した場合や、 エンコードする複数のファイル中に同じ name が 2 つ以上あった場合、結果は期待したようにはならないだろう。

エンコードされた形式では、UU エンコードの場合 37%、 base64 エンコードの場合 35% サイズが大きくなる (3 バイトのデータが 4 バイト + 制御情報になる)。

履歴

uuencode コマンドは BSD 4.0 で登場した。