Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名前
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 に入力しなければならない。しかし、このようなメッセージ は滅多にないので 心配する必要はない。 December 1996 UUDEVIEW(1)