UUDEVIEW
Section: User Commands (1)
Updated: December 1996
Index
JM Home Page
roff 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
に入力しなければならない。しかし、このようなメッセージは滅多にないので
心配する必要はない。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- デコード
-
- 実行時のメッセージ
-
- 注意
-
- 関連項目
-
- バグ
-
This document was created by
man2html,
using the manual pages.
Time: 04:33:02 GMT, November 19, 2007