ebzip
(ebunzip --compress
、
ebzipinfo --compress
と等価) は CD-ROM 書籍の圧縮を行います。
この節では、ハードディスクにすでにコピーしてある 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
が圧縮するファイルは、
START
、HONMON
、HONMON2
、
HONMONS
、LANGUAGE
ファイルと GAIJI
ディレクトリにある外字ファイルです。
この節ではもう一つ別の例として、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
によって
作成されます。
catalog
と catalogs
は、出力側のディレクトリ
にコピーされます。
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
だということが分かります。
english
と german
だけを圧縮するには、次の
ようにします。
% ebzip --subbook english,french /dict
ディレクトリ名の大文字、小文字の違いは無視されます。 --subbook の引数は、次のように分けて書くこともできます。
% ebzip --subbook english --subbook french /dict
残りの副本 (この例では german
) のファイルは圧縮されることも
コピーされることもありませんので、この時点ではまだこの書籍に対する圧縮の
作業は完了していません。
この書籍を使用するためには、さらなる操作を行って残りの副本を圧縮するか、
ebrefile
コマンドを使って残りの副本を catalog(s)
ファイルの副本登録リストから削除しなくてはなりません
(ebrefile
コマンドについて詳しくは、
ebrefile コマンド のマニュアル
の「ebzip
との連携」項を参照のこと)。
副本の一部ずつを複数回に分けて圧縮する場合、すべての副本で同じ圧縮レベル
を指定する必要はありません。
(たとえば、english
と french
はレベル 0 で圧縮し、
german
はレベル 2 で圧縮する)。
--skip-content (-s) は --subbook に似ていますが、--skip-content では無視するファイルの データ型を指定します。
% ebzip --skip-content sound,movie --subbook french /dict
この例では、ebzip
は音声と動画ファイルを飛ばします。
現在のところ、ebzip
によって認識されるデータ型は、
次の通りです。
font
graphic
sound
movie
書き込もうとしたファイルがすでに存在するとき、ebzip
は
上書きして良いかどうかの確認を求めてきます。
==> /dict/science/data/honmon を圧縮 <== /dict/science/data/honmon.ebz に出力 ファイルがすでに存在します: /dict/science/data/honmon.ebz 上書きしますか (はい:y, いいえ:n)?
y か n で答えて下さい。
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 の圧縮形式よりも圧縮率が 良好です。