[前へ] [次へ] [目次]


圧縮

ebzip (ebunzip --compressebzipinfo --compress と等価) は CD-ROM 書籍の圧縮を行います。

圧縮の実行例 (1)

この節では、ハードディスクにすでにコピーしてある CD-ROM 書籍を圧縮するには どうしたらいいかを説明します。 CD-ROM 書籍がすでに /dict にコピーされているものの、まだ圧縮 されていないと仮定します。 この書籍は /dict の下に、次のようなファイルを持っています。

/dict/catalog
/dict/language
/dict/kanji/start
/dict/english/start

この書籍を圧縮するには、次のようにします。

% cd /dict
% ebzip

これは次のようにしても同じです。

% ebzip --output-directory /dict /dict

圧縮には、しばらくかかることがあります。 圧縮の間、ebzip は、次のように状況を知らせるメッセージを出力 します。

==> /dict/kanji/start を圧縮 <==
./dict/kanji/start.ebz に出力
 1.0% 処理済み (2097152 / 220069888 バイト)
 1.9% 処理済み (4194304 / 220069888 バイト)
 2.9% 処理済み (6291456 / 220069888 バイト)
        : (略)
完了 (220069888 / 220069888 バイト)
220069888 -> 78163751 バイト (35.5%)

圧縮が完了すると、/dict の下のディレクトリ構成が少し変化して いるのが分かります。

/dict/catalog
/dict/language.ebz
/dict/kanji/start.ebz
/dict/english/start.ebz

拡張子 .ebz がいくつかのファイル (/dict/language.ebz/dict/kanji/start.ebz/dict/english/start.ebz) に付いています。 これらが圧縮されたファイルです。 他のファイルは変化していません。

ebzip が圧縮するファイルは、 STARTHONMONHONMON2HONMONSLANGUAGE ファイルと GAIJI ディレクトリにある外字ファイルです。

圧縮の実行例 (2)

この節ではもう一つ別の例として、CD-ROM ディスクのファイルを圧縮し、それ をハードディスクに置く方法について説明します。 元の CD-ROM 書籍が /cdrom にマウントされ、書籍は /cdrom の下に次のようなファイルを持っていると仮定します。

/cdrom/catalog
/cdrom/language
/cdrom/german/start
/cdrom/french/start
/cdrom/italian/start

この書籍を圧縮し、/dict の下に置くためには、次のコマンドを 実行します。

% cd /dict
% ebzip --keep /cdrom

これは次のようにしても同じです。

% ebzip --keep --output-directory /dict /cdrom

出力側のディレクトリ /dict は空でも構いませんが、圧縮前に あらかじめ作っておかなければならないので、注意して下さい。 この例では、--keep オプションを使っています。 特に指定しなければ、ebzip は、圧縮後に元のファイルを削除 しますが、--keep オプションはこの振る舞いを抑制します。

/dict/cdrom のディレクトリ構成はほとんど 同じですが、/dict の下の圧縮されたファイルには拡張子 .ebz が付いています。

/dict/catalog
/dict/language.ebz
/dict/german/start.ebz
/dict/french/start.ebz
/dict/italian/start.ebz

中間のディレクトリ /dict/german/dict/french/dict/italian は、もし無ければ ebzip によって 作成されます。 catalogcatalogs は、出力側のディレクトリ にコピーされます。 EB ライブラリが対応していないファイル、ディレクトリについては、 ebzip は無視します (圧縮もコピーもしません)。

圧縮レベル

ebzip は、0 〜 5 という 6 つの圧縮レベルを持っています。 圧縮レベル 0 は、圧縮・伸長が最も速いですが、圧縮率は最悪です。 圧縮レベル 5 は、圧縮率が最良ですが、圧縮・伸長は最も遅くなります。 圧縮レベルは、--level (-l) オプションで設定します。

% ebzip --level 2 --output-directory /dict /dict

無指定時のレベルは 0 (最速だが圧縮率は最悪) です。

テスト

ebzip--test (-t) オプション付き で実行すると、ebzip は圧縮したデータを実際のファイルには 書き込まなくなります。 圧縮する前に圧縮後のファイルの大きさを知りたいときに、便利です。

% ebzip --test /dict /dict

一部だけの圧縮

なにも設定しないと、ebzip は書籍一冊の全体を圧縮しますが、 --subbook (-S) や --skip-content (-s) オプションを使うと一部だけを圧縮できます。

--subbook オプションは引数を一つ取り、そこにカンマ (,) で区切って、圧縮したい副本のディレクトリ名を並べて 書きます。 ebinfo コマンドを用いると、あなたの所有している書籍に どのような副本が含まれているのかを知ることができます。

% ebinfo /mnt/cdrom
ディスクの形式: EB/EBG/EBXA/EBXA-C/S-EBXA
文字コード: JIS X 0208
副本の数: 3

副本 1:
  題名: 新英和辞典(第四版)
  ディレクトリ: english
  検索方式: 前方一致 後方一致 条件 メニュー
  フォントの大きさ: 16 24 30 48
  半角フォントの文字: 0xa121 -- 0xa24e
  全角フォントの文字: 0xa321 -- 0xa27e

副本 2:
  題名: CD-ROM 仏和辞典(第三版)
  ディレクトリ: french
  検索方式: 前方一致 後方一致 条件 メニュー
  フォントの大きさ: 16 24 30 48
  半角フォントの文字: 
  全角フォントの文字: 0xa321 -- 0xa27e

副本 3:
  題名: ポケット独和辞典(第三版)
  ディレクトリ: german
  検索方式: メニュー
  フォントの大きさ: 16 24 30 48
  半角フォントの文字: 
  全角フォントの文字: 0xa321 -- 0xa27e

(ebinfo コマンドに関しての詳細は、 ebinfo コマンドのマニュアル を参照のこと。) この例では、3 つの副本が書籍には含まれており、それらのディレクトリ名は english, french, german だということが分かります。

englishgerman だけを圧縮するには、次の ようにします。

% ebzip --subbook english,french /dict

ディレクトリ名の大文字、小文字の違いは無視されます。 --subbook の引数は、次のように分けて書くこともできます。

% ebzip --subbook english --subbook french /dict

残りの副本 (この例では german) のファイルは圧縮されることも コピーされることもありませんので、この時点ではまだこの書籍に対する圧縮の 作業は完了していません。 この書籍を使用するためには、さらなる操作を行って残りの副本を圧縮するか、 ebrefile コマンドを使って残りの副本を catalog(s) ファイルの副本登録リストから削除しなくてはなりません (ebrefile コマンドについて詳しくは、 ebrefile コマンド のマニュアル の「ebzip との連携」項を参照のこと)。

副本の一部ずつを複数回に分けて圧縮する場合、すべての副本で同じ圧縮レベル を指定する必要はありません。 (たとえば、englishfrench はレベル 0 で圧縮し、 german はレベル 2 で圧縮する)。

--skip-content (-s) は --subbook に似ていますが、--skip-content では無視するファイルの データ型を指定します。

% ebzip --skip-content sound,movie --subbook french /dict

この例では、ebzip は音声と動画ファイルを飛ばします。 現在のところ、ebzip によって認識されるデータ型は、 次の通りです。

古いファイルの上書き

書き込もうとしたファイルがすでに存在するとき、ebzip は 上書きして良いかどうかの確認を求めてきます。

==> /dict/science/data/honmon を圧縮 <==
/dict/science/data/honmon.ebz に出力

ファイルがすでに存在します: /dict/science/data/honmon.ebz
上書きしますか (はい:y, いいえ:n)?

yn で答えて下さい。 n と答えると、ebzip はそのファイルを飛ばして、 次に進みます。

--force-overwrite オプションを指定すると、ebzip はすでに存在しているファイルを、確認なしに上書きします。 同様に、--no-overwrite オプションを指定すると、 ebzip は確認なしにそのファイルを飛ばして次に進みます。

圧縮された書籍の圧縮

S-EBXA および EPWING 規格においても圧縮形式を定義しており、CD-ROM 書籍 にはこれらの圧縮形式を実際に採用しているものがあります。 これらの圧縮形式は、ebzip の圧縮形式とは異なるものです。

ebzip は S-EBXA や EPWING 圧縮形式で圧縮された CD-ROM 書籍も 伸長することができますが、圧縮することはできません。

ebzip に対して、既に圧縮されている CD-ROM 書籍を圧縮するように 命じると、ebzip はいったん書籍を伸長してから、ebzip の圧縮形式で 圧縮し直します。

一般に ebzip の圧縮形式の方が S-EBXA や EPWING の圧縮形式よりも圧縮率が 良好です。


[前へ] [次へ] [目次]