UUDEVIEW

Section: User Commands (1)
Updated: December 1996
Index JM Home Page
 

名前

uudeview - バイナリファイル用の高性能なデコーダ  

書式

uudeview [-i] [-d] [-f] [-o] [-b1] [-t] [(+e|-e) extlist]
[-v] [-s] [-m] [-n] [-p path] [@file] file(s)
 

説明

uudeview は、電子メールや Usenet から受け取ったエンコードされた形式のファイルを デコードする。標準付属の uudecode(1) に似ているが、これよりも快適かつ柔軟である。 uudeview はエンコーディング方法として uuencoding, xxencoding, Base64, BinHex をサポートしており、分割ファイル(複数の部分に分けて送られたもの)を扱う ことができ、さらに複数のファイルを同時に扱うこともできる。したがって、 デコードの手間を大きく省くことができる。ユーザは普通、デコードの準備を するためにファイルを手で編集する必要はない。

uudeview は起動されると、与えられたファイルを全てスキャンしてデコードすべきデー タを探し、そのデータとデータに含まれるパートをソートし、うまくデコード できそうなファイルの一覧をユーザに示す。ユーザはこの一覧からデコードす るファイルを個別に選ぶ。  

オプション

-i
対話機能を無効にする。ファイルのスキャンとその結果のソートを行った後、 uudeview はファイルをデコードするかどうかをユーザに問い合わせず、デコード可能な ものを即座にバッチ処理でデコードする。
-d
uudeview を desperate モードにする。このモードでは、不完全なファイルもデコード の候補となる。この機能が有効なのは 50 個のパートに分かれた投稿の最後の 部分が欠けているような場合であるが、大抵の場合は、無理にデコードしたファ イルは単に壊れているだけで利用はできないだろう。不完全なファイルがどの 程度使えるかはファイルの種類による。
-f
高速モードでファイルをスキャンする。 uudeview は各入力ファイルに多くとも 1 ファイルしか含まれていないものと想定する。 これは普通、ニューススプール内にあるファイルについては成り立つ。このオ プションを指定すると、複数の記事に分かれた入力ファイルのデコードは 中断される 。また、データが正しいかどうかのチェックも一部が無効になるので、誤りが あるファイルもおそらくデコードの候補として示される。デコードの時にエラー メッセージを受け取ることもあるし、単に不正なファイルができることもある。 このような問題に遭いたくないなら -f オプションは使わないこと。
-o
デコード時に既存のファイルを上書きすることを許可する。デフォルトでは、 上書きするか、別の名前を付けるか、そのファイルを飛ばすかの問い合わせが ユーザに対して行われる。
-v
詳細表示を 無効に する。通常、このプログラムは入力ファイルを読み込む際に何らかのステータ スメッセージを表示する。これは問題が起きたときには非常に役に立つ。この ようなメッセージが鬱陶しい場合にこのオプションを使うこと。
-p パス デコードしたファイルを書き込むディレクトリを設定する。これは有効なパス 名でなければならず、そうでない場合はファイルをデコードしようとした時に エラーとなる。デフォルト値は現在の作業ディレクトリである。
+e 拡張子 指定された拡張子を持つファイルだけを選択してデコードする。他のファイル は無視される。 +e .gif.jpg を指定すると、GIF ファイルと JPG ファイルは全てデコードされるが、TIF 等はデコードされない。拡張子のリストでは大文字と小文字は区別されない。
-e 拡張子 上記のオプションの反対の意味を持つ。

コマンドラインで +e と -e を混ぜて使っても、希望した結果は得られない だろう。

-b1
このオプションは、サブジェクトからパート番号を取り出すという uudeview のポリシーを変更する。このオプションが必要となるのは稀であるが、 例えば複数に分割して投稿が行われた時のように、パート番号が 括弧 () や ブラケット [] 内に書かれている場合だけは必要となる。デフォルトでは、 uudeview はまず 括弧 () 内にある数字を使う。しかし、この番号が全体のファイル数 を示しており、パート番号はブラケット [] に書かれている場合には、このパ ラメータを使って uudeview に他の数字を最初に読み込ませるようにすること。このオプションは、1 種類 のブラケットしか含まないファイルや、どちらの種類のブラケットも含まない ファイルの展開には影響を与えない。必要ならば、このオプションは -b[] のように使うこともできる。
-s
「賢くなくする(minus smartness)」と読むこと。このオプションは、サブジェ クト行からパート番号を自動検出する機能を無効にする。 uudeview がサブジェクト行の正しい展開に失敗してパート番号の推定時にエラーを出力 し、パートの順番が狂う場合にはこのオプションを試すとよい。このオプショ ンを使うと、パートは必ず順番通りに繋げられる(したがって、入力ファイル ではパートを正しい順に並べなければならない)。また、このオプションを使 うと、プログラムは欠けているパートを検出することはできない。 注意: この場合でも、きちんとした MIME ファイルに含まれている正しいパート番号は評価される。このオプションを 2 回指定すると、サブジェクトそのものも無視され、パートのグループ付けに は使われない。パートを配送する一連のメッセージのサブジェクト行がそれぞ れ異なる場合には、このオプションを使用すること。
-m
ファイルのモードを無視する。uuencode や xxencode されたファイルの begin 行には、元のファイルのパーミッションが書かれている。このオプショ ンが与えられなければ、デコーダは元のパーミッションを復元しようとする。 このオプションを与えると、得られるパーミッションは 0666 からユーザの umask を引いた値となる。
-n
プログレスバーを表示しない。uudeview は通常、進行状況に合わせて 100% まで伸びてゆく横棒を ASCII 文字で表示するが、端末がこれを表示できるか どうかのチェックは行わない。端末が表示できない場合や、プログレスバーを 目障りと感じた場合にはこのオプションを使うこと。
-t
プレーンテキストのメッセージを使う。通常、uudeview はデコードの際には エンコードされたデータだけを表示する。このオプションを設定すると、 MIME メッセージに入っているテキストパートやエンコードされていないデータもデ コード対象として示される。プレーンテキストのメッセージにはファイル名が 付けられていないことが多いので、これらには 4 桁の通し番号を使ったユニー クな名前が付けられる。
ファイル(複数可) エンコードされたファイルを探すためにスキャンするファイル。ハイフン ('-')を指定すれば、標準入力から読み込むこともできる。指定するファイ ルの数はいくつでも良いが、通常はシェルがオプションの数を 128 個までに 制限している。ワイルドカードを使ってファイルのリストを作った場合には、 間違ってバイナリファイルをプログラムに入力しないこと。こうなった場合の 動作は未定義である。
@ファイル 追加のオプションをファイルから uudeview に読み込ませる。このファイルでは 1 行に 1 つだけオプションを書かなけ ればならない。このファイルはプログラムの終了時に 削除される 。この機能を使うとファイルを何個でも指定することができる。 find(1) の機能と組み合わせれば、ディレクトリツリー全体(ニューススプールのディ レクトリ等)を処理することができる。

環境変数 $UUDEVIEW にオプションを指定することもできる。この値はコマン ドラインのオプションを処理する前に読み込まれる。  

デコード

入力ファイルを全てスキャンした後、それぞれのファイルの扱いについてユー ザに問い合わせが行われる。当然ながら普通はデコードの実行と答えるのだが、 選択肢は他にもある。以下のコマンドを使用することができる(各コマンドは 1 文字である):
d
ファイルをデコードし、デコードしたファイルを指定された名前でディスクに 書き込む。
y
(d) と同じ動作である。
x
このコマンドもファイルをデコードする。
n
このファイルをデコードしないで飛ばす。
b
前のファイルに戻る。
i
ファイルに関する情報があれば、それを表示する。マルチパートの投稿に 0 番目のパートがあればそれを表示する。0 番目のパートがなければ、エンコー ドされているデータまでにある最初のパートが表示される。
e
コマンドを実行する。どんなコマンドでも入力することができるが、この際に は多分、現在のファイルが引き数として使われるだろう。コマンドライン中の ドル記号 '$' は全て、現在のファイルのファイル名に置き換えられる(正確に は一時ファイルの名前)。この一時ファイルを使ってバックグラウンドプロセ スを実行してはならない。なぜなら、入力ファイルが突然消えた場合にプログ ラムの処理が混乱するからである。
l
ファイルをリスト表示する。このコマンドを使うのは、問い合わせ対象のファ イルがテキストファイルの場合だけにすること。そうでない場合にはゴミが大 量にできるだけである。
r
名前を変える。別の名前を選んで、そのファイルを新しい名前で保存すること ができる。
p
デコードしたファイルを書き込むパスを設定する。このパスは、コマンドライ ンオプションの -p コマンドで設定することもできる。
q
即座にプログラムを終了する。
?
以上のコマンド全ての簡単な説明を表示する。

コマンドを入力しないで、プロンプトでリターンキーだけを叩いた場合には、 デフォルトのコマンドであるファイルのデコードが実行される。  

実行時のメッセージ

詳細表示モード(つまり、-v オプションで詳細表示を無効にしていない場合) では、進行状況メッセージが出力される。このメッセージはプログラムの実行 を追跡するのに非常に便利であり、これを理解できればファイルのデコードに 失敗した原因の追求に使うことができる。このセクションではメッセージの解 釈の仕方を説明する。プログラムを操作するだけならば、このセクションを理 解することはあまり重要でない。

最初は「ロード中」のメッセージである。これは文字列 "Loaded" で始まる。 それぞれの行は以下の要素を示さなくてはならない:

入力ファイル 最初の要素はソースファイルであり、ここからパートがロードされる。 1 つのファイルから多くのパートが検出されることもある。
サブジェクト行 完全なサブジェクトがシングルクォートで括られた形で再現される。
識別子 このプログラムは、同じファイルに属していると思われる記事をまとめるため、 サブジェクト行を利用してこのスレッドをユニークに識別する。このアルゴリ ズムの結果はブレースで括って表示される。
ファイル名 サブジェクト行やデータ内でファイル名が検出されたかどうか(例えば、begin 行や Content-Type 情報の一部として検出される)。
パート番号 パート番号を表す。サブジェクト行から取り出されたり、きちんとした MIME 形式のメッセージの場合には「パート」情報から取り出されたりする。
Begin/End
"begin" トークンや "end" トークンが検出された場合、それがここで出力さ れる。
エンコーディング型 このパート内でエンコードされたデータが検出された場合、"UUdata", "Base64", "XXdata", "Binhex" のいずれかが出力される。

スキャンが終わった後にはこれ以外のメッセージが出力される。記事のグルー プそれぞれに対して 1 つの行が出力される。この行の内容は例で見る方が分 かりやすいだろう。以下に例を示す:

Found 'mailfile.gz' State 16 UUData Parts begin 1 2 3 4 5 end 6 OK

この行はファイル mailfile.gz が見つかったことを示す。ファイルは uuencode されており("UUData")、6 つ のパートからなる。また、"begin" トークンが最初のパートで見つかり、 "end" トークンが 6 番目のパートで見つかった。全て揃っているように見え るので、このファイルには "OK" のタグが付けられる。 State には以下に示す各種ビットが設定される。ビットの値は OR されることもあるだろう。

1
欠けているパートがある
2
Begin が無い
4
End が無い
8
エンコードされているデータが見つからない
16
ファイルは問題なしと思われる
32
ファイルのデコード時にエラーが起きた
64
ファイルがうまくデコードできた
 

注意

このプログラムは、標準入力から読み込みを行うときには端末の入力を受け取 ることができないので、この場合には対話機能は自動的に無効にされる。

MIME 形式のメッセージヘッダが検出されたときは、このプログラムはほぼ MIME 準拠の動作を行う。 「 ほぼ 」というのは、規約ではファイルが複数のメッセージを含むことは認められて いないけれど、 uudeview はこの制限なしで動作するからである。実際には、コマンドラインオプション -f を用いて必ずこの状態になるようにすれば、このプログラムは RFC1521 に完 全に準拠する。 (このオプションが設定されていても、正しい MIME マルチパートメッセージ に含まれるパートは全て処理される。)

スキャンの処理部分は、MIME メッセージの外部にある短い Base64 データ(4 行以下)を無視することがよくある。この状態に対するチェックがいくつか desperate モードで行われるが、これを行うとエンコードされたデータを誤っ て検出し、不正なファイルができることがある。

ファイルは最初は必ず一時ファイルにデコードされ、その後に最終的な場所に コピーされる。これは、後になってからデコードできないことが分かるような データで既存のファイルを誤って上書きすることを防ぐためである。したがっ て、必要なサイズの 2 倍の空きスペースを予め確保すること。また、標準入 力から読み込みを行う時には、全てのデータは一時ファイルに書き込まれ、そ の後にこのファイルに対して通常のスキャン処理が始められる。

Subject 行があれば、 uudeview は必要な情報全てをこの行から取り出そうとする。Subject 行にゴミが入っ ている場合や、プログラムがユニークな識別情報とパート番号を Subject 行 から見つけられなかった場合でも、 uudeview は別のヒューリスティクスを用いてファイルをデコードすることができるが、 この場合の結果は運任せである。

ただし、これが関係あるのはファイルが分割されている場合だけである。エン コードされたファイルが全て 1 つのパートだけからなる場合には何も心配す る必要はない。

このプログラムの名前を変えたり、コピーしたり、リンクをすることによって uudecode にした場合、このプログラムは標準の uudecode の高性能な代用プログラムとして動作し、同じコマンドラインオプションを受 け付ける。ただし、テストはまだ十分でない。  

関連項目

uuenview(1), uudecode(1), uuencode(1),

ウェブ上にある uudeview のホームページ:

http://www.uni-frankfurt.de/~fp/uudeview/  

バグ

名前がハイフン('-')で始まるファイルを読み込むには、パス名(例えば './') を前に付けること。

バグとして報告する前には、そのファイルが他の手段でデコードできることを 確かめること。作者は、全くのゴミのデコードに失敗したと後でわかるような バグ報告は受け取りたくない。

バグを見つけたと思ったら、入力ファイル(できれば単に入れるだけでなく、 元のファイルに圧縮とエンコードを施すこと)とプログラムのメッセージのリ スト(詳細表示モード)を fp@informatik.uni-frankfurt.de 宛に送ること。

現在は BinHex データに入っているチェックサムは無視される。

このプログラムは、分割されたマルチパートメッセージ(複数のメールに分割 された MIME 形式のマルチパートメッセージ)を完全に処理することができな い。各パートが識別されて 1 つにまとめられ、これに含まれているマルチパー トメッセージがプレーンテキストファイルに「デコード」されるが、このファ イルを再び uudeview に入力しなければならない。しかし、このようなメッセージは滅多にないので 心配する必要はない。


関連キーワード

デコード, パート, uudeview, メッセージ, プログラム, 表示, 入力, データ, コマンド, 名前 

Index

名前
書式
説明
オプション
デコード
実行時のメッセージ
注意
関連項目
バグ

This document was created by man2html, using the manual pages.
Time: 13:30:32 GMT, January 09, 2022