# ebrefile コマンド

この文書は EB ライブラリバージョン 4.4.3 に対応しています。

目次:

- はじめに
- `ebrefile` の実行
  - 副本の選択
  - `ebzip` との連携
- `ebrefile` のオプション一覧

Copyright (c) 1998-2006 Motoyuki Kasahara

## はじめに

一冊の CD-ROM 書籍は、大抵複数の 副本 (subbook) を 持っています。 たとえばある CD-ROM 書籍は国語辞典、英和辞典、和英辞典の 3 つの副本を 収めています。 個々の副本は、それ自体が独立した「書籍」になっています。

>          (CD-ROM 書籍)
>     +-----------------------+
>     |   [国語辞典] (副本)   |
>     |   [英和辞典] (副本)   |
>     |   [和英辞典] (副本)   |
>     +-----------------------+

EB/EBG/EBXA/EBXA-C/S-EBXA 形式の CD-ROM 書籍は `catalog` というファイルを、EPWING 形式の CD-ROM 書籍は `catalogs` というファイルを持っています。 これらのファイルは、その CD-ROM 書籍にはどんな副本が収められているのかを 定義しています。 これらのファイルは、CD-ROM 書籍のトップディレクトリに置かれています。

`ebrefile` は元のカタログファイルを読み、ユーザから指定された 副本だけを取り込んだ新しいカタログファイルを生成します。 言い換えれば、`ebrefile` は特定の副本の定義を、カタログファイル から削除します。 CD-ROM 書籍が 3 つの副本を持っている場合、`ebrefile` は そのうちの任意の 1 つまたは 2 つの副本を、新しいカタログファイルに 取り込むことができます。 ハードディスクに CD-ROM 書籍の一部だけをコピーしたいときに、 `ebrefile` は便利です。 `ebrefile` は EB ライブラリと一緒に配布されています。

あなたは、自分の所有する CD-ROM 書籍の使用許諾を守らなくてはいけません。 `ebrefile` はフリーソフトウェアですが、あなたの書籍が自由に 使えるものであるとは限りません。 `ebrefile` は、CD-ROM 書籍のあるファイルの内容に変更を加えます。 ご注意下さい。

## `ebrefile` の実行

`ebrefile` の一般的な起動方法は次の通りです。

>     % ebrefile 書籍へのパス

書籍へのパス には、CD-ROM 書籍のトップディレクトリ、つまり `catalog` または `catalogs` ファイルが存在する ディレクトリを指定します。 複数のパスを書くことはできませんが、以下のように、パスの指定を省くことは できます。

>     % ebrefile

この場合、`ebrefile` はカレントディレクトリ (`.`) が指定されたものと判断します。

遠隔アクセスには対応していませんので、遠隔アクセス識別子は使用できません。

>     % ebrefile ebnet://localhost/cdrom
>     ebrefile: ebnet には対応していません。

### 副本の選択

特に指定がないと、`ebrefile` は、元のカタログファイルで定義 されているすべての副本を新しい副本に取り込みます。 つまり、新しいカタログファイルは、単に元のファイルのコピーになります。 この振る舞いは、役に立ちません。 `ebrefile` は、通常 `--subbook` (`-S`) オプションを指定して起動します。

`--subbook` (`-S`) オプションは引数を一つ取り、 そこにカンマ (`,`) で区切って、新しいカタログファイルに 取り込みたい副本のディレクトリ名を並べて書きます。 `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` だということが分かります。

次のコマンドを実行すると、`ebrefile` は副本として `english` と `french` だけを定義した新しいカタログ を生成します。

>     % ebrefile --subbook english,french

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

>     % ebrefile --subbook english --subbook french

`ebrefile` は副本の定義順序を変えることはできませんので、 `--subbook` に与える引数の順序は任意です。

これで再構成は完了です。 もういちど `ebinfo` を起動してみましょう。 副本 `german` が消えています。

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

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

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

もし、CD-ROM 書籍全体をすでにハードディスクにコピーしているなら、 副本 `german` のファイルは削除しても構いません。 ディレクトリ名が小文字で構成されているなら、次のようにします。

>     % rm -r german

`ebrefile` は、読み込んだカタログファイルにそのまま上書きして 新たなカタログファイルを生成しますが、元のカタログファイルの複製が、 `catalog(s).old` というファイル名で保存されます。 副本の選択を間違えてしまった場合は、いったん元に戻しましょう。 (以下では、カタログファイルが `catalogs` だと仮定しています。)

>     % mv catalogs.old catalogs

ただし 実行時に `catalog(s).old` が既に存在していると、上書き せずに残します。 この場合、カタログファイルの複製は新たに作られませんので、注意して下さい。

### `ebzip` との連携

`ebrefile` は、`ebzip` という CD-ROM 書籍を圧縮する コマンドと併用することができます (`ebzip` コマンドに関しての詳細は、 ebzip コマンドのマニュアル を参照のこと。) 通常、 `ebzip` と `ebrefile` にはコマンド行で同じ 引数を与えます。

CD-ROM 書籍が `/cdrom` にマウントされ、この書籍には `english`、`french`、`german` という 3 つの副本が収められているとします。 以下に記した操作によって、副本 `english`、`french` は圧縮されてカレントディレクトリの下に置かれ、副本 `german` は 副本のリストから削除されます。

>     % ebzip --subbook english,french /cdrom
>     % ebrefile --subbook english,french /cdrom

圧縮したファイルをカレントディレクトリ以外に置くには、次のようにします。

>     % ebzip --output-directory /dict --subbook english,french /cdrom
>     % ebrefile --output-directory /dict --subbook english,french /cdrom

## `ebrefile` のオプション一覧

`ebrefile` コマンドは、伝統的な一文字オプション名と覚えやすい 長いオプション名の両方を扱うことができます。 長いオプション名を表すには、`-` ではなく `--` を 用います。 オプション名が一意に決まる範囲内で、名前の後方部分を省略することができます。

`-h`
`--help`
  ヘルプメッセージを標準出力に出力して、終了します。
`-o ディレクトリ`
`--output-directory ディレクトリ`
  新しいカタログファイルを置くディレクトリを指定します。 指定しなかったときは、カレントディレクトリ (`.`) になります (詳しくは、「`ebrefile` の実行」 を参照のこと)。
`-S 副本`
`--subbook 副本`
  `ebrefile` が新しいカタログファイルに取り込むべき副本を指定します。 副本 は、副本のディレクトリ名をカンマ (`,`) で区切って 並べたものでなくてはいけません。 指定しなかったときは、すべての副本が対象になります (詳しくは、「副本の選択」 を参照のこと)。
`-v`
`--version`
  バージョン番号を標準出力に出力して、終了します。