書式
uuencode [-m] [ file ] nameuudecode [-o outfile] [ file ]...
説明
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 の) どちらのエンコード形式が使われているかを、 自動的に判断することができる。
例
次の例では、ソースツリーを (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 で登場した。