FDclone って何?
FDclone の配布パッケージにある README には以下のようなことが書かれています。
FDclone は、
1989年に A.Idei <SDI00544@niftyserve.or.jp> 氏の手によって MS-DOS 用に作成された『FD』を模した、
UNIX ベースの OS (以下便宜上単に "UNIX" と呼ぶ) 汎用のファイル & ディレクトリ管理ツールです。
仕様部分に関しては、
できるだけオリジナルの『FD』に近付けるようにしましたが、
インプリメントに関しては全くのオリジナル作品です。
要するに、
カレントディレクトリの中身を visual 化し browsing させるツールです。
GUI の世界で「ブラウザ」とか「ランチャ」とか呼ばれているもののテキスト版ですね。
MS-DOS の世界では古くから一般的に出回っていた free software を作り直したものです。
百聞は一見に如かずということで、
実行画面の snapshot を見てみましょう。
1.03l という古いバージョンですが、
基本画面の見た目はどのバージョンもまぁおんなじです。
反転表示されているファイルがカーソル位置を表していて、
これをカーソルキー等で動かします。
現在のカーソル位置のファイル又はディレクトリを対象として、
入力されたキーによって様々なコマンドが実行されるのです。
ファイルのコピーや移動、閲覧や実行、といったファイル操作が主なコマンドですね。
FDclone の主な機能はこれで全てです。
一応主なキーバインドを記しておくとこんな感じ。
Return | サブディレクトリに移動 |
ランチャの起動 |
Bs | 親ディレクトリに移動 |
l (小文字の L) | 入力ディレクトリに移動 |
Tab, Space, Ctrl+@ | ファイルへのマーク |
c | ファイルのコピー |
m | ファイルの移動 |
d | ファイルの削除 |
k | ディレクトリの作成 |
D | ディレクトリの削除 |
r | ファイル名の変更 |
1, 2, 3, 5 | 画面表示列数の変更 |
s | ファイル表示の並べ替え |
t | ディレクトリのツリー表示 |
h | コマンド文字列の実行 |
? | ヘルプ画面の表示 |
Esc (q) | FDclone の終了 |
1.00 までの FDclone は、
『FD』を模すことだけを念頭に開発されていましたので、
このファイル操作機能のみの実装でしたが、
作る側としてはそれだけでは面白くないので、
誰からもニーズとして上がってもないのに後から後から機能を追加し始めました。
1.01 以降で追加された、
趣味に走った余剰機能を挙げてみましょう。
- MS-DOS フロッピードライブ機能:
MS-DOS のフロッピーを UNIX 環境からアクセス出来ます。
mount が不要なのでそれなりに便利。
1.03i 辺りからハードディスク上の MS-DOS 領域もアクセス出来るようになりました。
- ファイル名補完:
文字列入力の際に TAB でファイル名を補完するという最近の高機能 shell にありがちの機能を強化し、
画面表示された一覧候補の中から選択出来るようになっています。
- 漢字コードコンバート:
入出力の漢字コードを動的に変更出来るので、
network 越しの multi platform 環境にも使えます。
- 擬似 RockRidge 拡張:
ISO-9660 RockRidge 拡張という今では当たり前の CD-ROM 規格があるのですが、
古い UNIX-OS はこれに対応していないため、
TRANS.TBL という変換テーブルファイルを参照しながら表示する機能です。
最近の OS しか知らない人にはピンと来ないでしょう。
- 関数機能:
マクロを作ろうとしていたら関数を作ってしまいました。
この辺りから FDclone は shell を目指すようになります。
- カラー化:
ファイル属性に応じて色を変えて表示する機能は、
本家の『FD』では同梱のカスタマイザにより実現されていましたが、
要望が多かったようなので FDclone でも ANSI の escape sequence を利用して実装してみました。
- MS-DOS への移植:
MS-DOS ユーザはオリジナルの『FD』を使えばいいと思うのですが、
何故か porting してしまいました。
Windows ユーザ向けには Cygwin 上でも動きます。
- キーマップ変更:
UNIX という環境は端末に応じてキーボードが違ってしまうので、
動的にキーアサインを変更出来ないといけません。
その辺りを TERMCAP が吸収しきれないようなのでキーマップ変更機能を実装してます。
- ファイル名サーチ:
ワイルドカードによって表示候補を狭めるサーチ機能は最初からあったのですが、
browsing しながら目当てのファイル名位置に移動したいことがままあるようなので、
incremental なサーチ機能も実装しました。
- BIOS 経由の LFN アクセス:
MS-DOS 版を Windows95 より前の素の MS-DOS で使う人がいるようで、
そういう環境では OS 自身が LongFileName に対応していないので、
Disk BIOS を直接呼んで LFN を含むドライブにアクセス出来るようになってます。
- アーカイブ内ファイル名検索機能:
書庫ファイルの沢山詰まったディレクトリからお目当てのファイルを探すのは結構大変なので、
自動的に中身を覗いてファイル検索出来るような機能をつけてみました。
一度きりの用途のために実装したと思います。
そして 2.00 では FDclone は単なる「ブラウザ」の域を越えて「シェル」になりました。
以下、
2.00 で追加された新機能です。
- 画面分割:
画面を上下二分割にして、
見比べながら作業可能にします。
並列処理ではありませんが、
source 側と destination 側、
新版と旧版、
といった分類で画面を分け、
それぞれの directory を行き来することが可能です。
ものは試し、
基本画面で「/」キーを押してみて下さい。
- カスタマイザ:
動作設定用の shell 変数操作など、
FDclone の設定を画面上で視覚的に行なう interface を提供します。
ものは試し、
基本画面で「E」キーを押してみて下さい。
- shell 機能:
/bin/sh (Bourne shell) 相当のシェルを自前で用意することにより、
組込み関数の出力を redirect したり、
statement 中に FDclone 独自の制御文字を織込んだりということが出来ます。
- 動的 filename code 機能:
filename に使われる漢字コードを動的に変更可能にします。
ShiftJIS, EUC-JP 等基本的なもの以外に、
HEX, CAP といった Samba で使われている漢字コードにも対応しています。
directory 単位で自動的に漢字コードを定めておくことも出来るので、
設定コードの異なる directory 間で file copy を行なうと、
filename の漢字コードが自動的に変換されます。
- file copy option の追加:
shell 変数の設定に応じて file copy 時の方針が選択出来ます。
また、
コピー先に同名 file が存在していた場合に、
元あった file を別の directory に転送することが出来ます。
- directory copy の強化:
current directory への directory copy
や異なる file system 間の directory 移動などが可能です。
- 先行ファイル表示機能:
file 情報を調べるより前に、
filename だけでも先に画面表示させてしまいます。
まずは filename だけ表示させておいて、
size や timestamp 等の file 情報はキー入力待ち期間中に順次拾ってこさせることで、
体感的には高速化されているように感じます。
この機能は directory 単位で指定出来ます。
なんか既に何のために作ってるんだか判らなくなってきています。
取り敢えず実装してみたい機能があったら作ってみるといったポリシーで開発していますので、
気がついたらゴテゴテの巨大なパッケージになってしまっています。
使う人のことは考えずに実装そのものを目的として開発を続けられている肥大化したツール、
それが FDclone なのです。
戻る