UUDEVIEW(1) UUDEVIEW(1) 名前 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 はまず 括弧 () 内にある数字を使う 。しかし、この番号が全体のファイル数を示しており、パート番号はブ ラケット [] に書かれている場合には、このパラメータを使って uude- view に他の数字を最初に読み込ませるようにすること。このオプシ ョ ンは、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 が見つかったことを示す。ファイル は uuen- code されており("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)
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa