FD(1)

名称
fd - ファイル・ディレクトリ管理ツール

形式
fd [ -NAME=value ] [ directory ]

解説
fd は、 UNIX 汎用のテキスト端末用に考えられた、 ファイルやディレクトリの管理ツールです。 PC/AT 互換機と PC-98x1 専用に作られている同名ユーティリティのクローンを目指しています。 実際、機能的には上位互換となっています。 fd を起動すると、ファイル一覧のブラウザ画面になりますので、 各コマンドを割当ててある各種キーの入力により、 様々な機能を実行することができます。 (以下の記述で (U) とある機能については、UNIX 版のみの実装で、 MS-DOS 版では機能しません。 同様に (D) とある機能については MS-DOS 版のみの実装です。)

  オプション
各コマンドラインオプションは、後述の内部変数の設定に使用します。 任意の変数名が使用できますが、 fd が解釈するものは後述の 環境変数 の項目で挙げられているものに限ります。 directory を指定すると、 起動直後にカレントディレクトリをそのディレクトリに移動します。

  画面レイアウト
fd の画面モードは、 大きく 3 つのモードに分けられます。 ブラウザ画面では、ファイルの一覧リストの中をブラウジングして、 各コマンドを実行していきます。 アーカイブブラウザ画面では、 アーカイブファイル内のファイルを、ディレクトリ階層別に一覧表示し、 ブラウザ画面と同様にブラウジングします。 ツリー表示画面では、ディレクトリの階層構造がツリー表示された中を、 移動してディレクトリパスを選択します。 どの画面モードでも、画面全体の上下各 3 行ずつは、 fd の様々な情報を表示するために用いられます。 画面上端情報については、 4 行の場合もあります。 その画面レイアウトは、おおよそ次のようになっています。

行数  意味

1   タイトル行。 右端の時計は 10 秒毎に更新されます。

2   インフォメーション行。 表示ページ (及び全ページ数)、マーク数 (及び全ファイル数)、 ソート形式、ファイル検索文字列の順で情報が書かれます。

3   パス行。 カレントディレクトリのフルパスが表示されます。 また、アーカイブブラウザ画面では、 アーカイブファイルのフルパスと、アーカイブ内パスが表示されます。

2 (随意)
    ファイルサイズ情報行。 ディレクトリ内のマークファイルの トータルサイズ (及び全ファイルのトータルサイズ)、 カレントディレクトリのあるファイルシステムの総容量、 及び空き容量が表示されます。 後述の環境変数 SIZEINFO の設定を事前に行なっておくことによりこの行が表示されます。 この行が表示されている場合、 インフォメーション行とパス行は それぞれ 1 行ずつ繰り下げて表示されます。

最下 - 2
    スタック行。 ファイルの並び替えを行なう際、 一時的にスタックに積んだファイルがここに表示されます。

最下 - 1
    ファンクション行。 ファンクションキーの機能が表示されます。

最下  ステイタス行。 カーソル位置のファイルに関するステイタスが表示されます。 また、コマンド実行の上で何らかの支障が生じた場合の ウォーニングメッセージもここに表示されます。

  内部コマンド
fd では以下の各内部コマンドが使用できます。 これらの内部コマンドのキー割当てはユーザにより変更可能ですが、 ここではデフォルトのキー割当てを添えます。 識別子は、 EXECUTE_SH コマンド内でコマンドラインから実行する場合や、 キー割当てをユーザ定義する場合に用います。
識別子	意味	キー
CUR_UP	カーソルを上に移動	↑
CUR_DOWN	カーソルを下に移動	↓
CUR_RIGHT	カーソルを右に移動	→
CUR_LEFT	カーソルを左に移動	←
ROLL_UP	次の表示ページに切替え	PageDown
ROLL_DOWN	前の表示ページに切替え	PageUp
CUR_TOP	カーソルを先頭に移動	Beg(<)
CUR_BOTTOM	カーソルを最後尾に移動	Eol(>)
FNAME_RIGHT	ファイル名表示範囲を右シフト	(
FNAME_LEFT	ファイル名表示範囲を左シフト	)
ONE_COLUMN	画面表示を 1 列にする	1
TWO_COLUMNS	画面表示を 2 列にする	2
THREE_COLUMNS	画面表示を 3 列にする	3
FIVE_COLUMNS	画面表示を 5 列にする	5
MARK_FILE	ファイルのマーク	Tab
MARK_FILE2	ファイルのマークと下移動	Space
MARK_FILE3	ファイルのマークと画面内移動	^Space(^@)
MARK_ALL	全ファイルにマーク	Home(+)
MARK_REVERSE	全ファイルをマーク反転	End(-)
MARK_FIND	検索したファイルにマーク	*
IN_DIR	サブディレクトリに移動	Return
OUT_DIR	親ディレクトリに移動	Bs
LOG_TOP	ルートディレクトリに移動	\
REREAD_DIR	表示画面の再描画	^L
PUSH_FILE	ファイルをスタックに積む	Del(])
POP_FILE	ファイルをスタックから取出す	Ins([)
LOG_DIR	ディレクトリの絶対移動	F1(l)
EXECUTE_FILE	ファイルの実行	F2(x)
COPY_FILE	ファイルのコピー	F3(c)
DELETE_FILE	ファイルの削除	F4(d)
RENAME_FILE	ファイル名の変更	F5(r)
SORT_DIR	ファイルのソート	F6(s)
FIND_FILE	ファイルの検索	F7(f)
TREE_DIR	ディレクトリのツリー表示	F8(t)
EDIT_FILE	ファイルの編集	F9(e)
UNPACK_FILE	アーカイブファイルの伸長	F10(u)
ATTR_FILE	ファイル属性の変更	F11(a)
INFO_FILESYS	ファイルシステムの情報表示	F12(i)
MOVE_FILE	ファイルの移動	F13(m)
DELETE_DIR	ディレクトリの削除	F14(D)
MAKE_DIR	ディレクトリの作成	F15(k)
EXECUTE_SH	子プロセスの実行	F16(h)
WRITE_DIR	表示ディレクトリの書込み	F17(w)
BACKUP_TAPE	テープへのバックアップ	F18(b)
VIEW_FILE	ファイルの閲覧	F19(v)
PACK_FILE	ファイルの圧縮	F20(p)
LOG_TREE	ツリー選択でディレクトリ移動	L
COPY_TREE	ツリー選択でファイルコピー	C
MOVE_TREE	ツリー選択でファイル移動	M
UNPACK_TREE	ツリー選択でファイル伸長	U
FIND_DIR	ディレクトリの検索移動	F
SYMLINK_MODE	symbolic リンク表示形式の切替	S
FILETYPE_MODE	ファイルタイプシンボルの切替	T
DOTFILE_MODE	ドットファイル非表示の切替	H
FILEFLG_MODE	ファイルフラグ表示の切替	O
SEARCH_FORW	ファイル名の前方検索	^S
SEARCH_BACK	ファイル名の後方検索	^R
LAUNCH_FILE	ランチャの起動	Return
HELP_MESSAGE	ヘルプ画面の表示	?
QUIT_SYSTEM	fd の終了	Esc(q)
WARNING_BELL	ベルを鳴らします
NO_OPERATION	何もしません

最後の 2 つの内部コマンドは、 キー割当てを変更してデフォルトで割当てられた機能を殺したい時に使います。

  内部コマンド解説
各内部コマンドの詳細を以下で説明します。 同様な機能を持つ内部コマンドは、 幾つかまとめて説明しています。

    カーソル移動
        カーソルを移動します。

    表示ページ切替え
        表示が一画面に収まらなかった場合に、 前後のページに移動します。 カーソル移動でページの外に移動しようとした場合にも、 ページ切替えになります。

    先頭, 最後尾への移動
        カーソルをファイル一覧の先頭及び最後尾に移動します。 表示が一画面に収まらない場合は、ページの切替えも行なわれます。

    ファイル名表示範囲の変更
        ファイル名表示が規定のカラム内に収まらなかった場合、 カーソル位置のファイル名のみ、表示される部分を変更していくことができます。 それぞれ、一文字ずつ右と左にシフトさせて表示します。 ステイタス行の表示も同時にシフトされます。

    画面表示列の変更
        通常は一画面 2 列の表示になっていますが、 この列の数をそれぞれの値に変更します。 列の数により、1 ファイル当たりのカラム数が変わるので、 表示されているファイル情報も変化します。

    ファイルのマーク
        カーソル位置のファイルにマークをします。 ディレクトリにはマークできません。 [Space] の場合にはマークと同時にカーソルを下移動します。 [^Space] の場合にも下移動しますがページ切替えはしません。 また、 [Home] で全ファイルにマークを、 [End] で全ファイルのマークを反転します。 [*] では、 ワイルドカードにマッチしたファイルにマークを追加します。 ワイルドカード文字列は [*] を押した後でその都度入力します。 マークしたファイルは、 ATTR_FILE, COPY_FILE, DELETE_FILE, MOVE_FILE, UNPACK_FILE 及びユーザ定義のコマンドマクロ実行の際に対象となります。

    カレントディレクトリの移動
        移動したいサブディレクトリのところにカーソルを移動し、 [Return] を押すと、そのディレクトリに移動します。 親ディレクトリへは、".." のファイルにカーソル移動して [Return] を押すか、 もしくは [Bs] を押すことで移動できます。 また、 [\] でルートディレクトリへの絶対移動を行ないます。

    ファイルスタックへの積み下ろし
        [Del] を押すと、そのカーソル位置のファイルが一旦スタックに積まれ、 ファイル一覧の画面から一時的に削除されます。 スタックには 5 ファイルまで積むことができます。 スタックに積まれたファイルは、 [Ins] でそのカーソル位置に挿入することができます。 最後にスタックに積んだファイルから順に取り出されます。 但し、この並びは fd の中で便宜上そう見えているだけで、 ディレクトリの移動等を行なえば元の並びに戻ります。

    表示画面の再描画
        カレントディレクトリの情報を再度読み出し、 ファイル一覧の画面を再描画します。 起動中に他のプロセスからファイルの追加削除を行なった場合や、 何らかの理由により画面表示が乱れた場合などに有効です。 また、画面サイズの変更に際して SIGWINCH シグナルを発生しないような端末の場合 (HP-UXの kterm(1) など) は、 画面サイズを変更した後には明示的に再描画させる必要があります。

    ディレクトリの絶対移動 (Logdir)
        入力したパス名に、カレントディレクトリを移動します。 '/' で始まるパス名を入力すれば、相対移動でなく絶対移動になります。 パス名として "." を入力すると、 カレントディレクトリのパス名を絶対表記に改めます。 これ以外の移動では、リンク等の原因により、 カレントディレクトリは常に仮想的なパス名を示します。 また、"?" というパス名を入力すると、 fd を起動した直前のカレントディレクトリに移動できます。 "-" というパス名を入力すると、 最後に訪れたディレクトリに移動できます。 また、フロッピードライブに移動している時に "@" というパス名を入力すると、 フロッピードライブに移動する前の UNIX ファイルシステム 側のディレクトリに移動できます。 (U)

    ファイルの実行 (eXec)
        カーソル位置のファイル名に、 パラメータを追加して子プロセスとして実行します。 編集ラインのカーソル位置は、 実行権のあるファイルではファイル名の後に、 それ以外のファイルではファイル名の前に来ます。 それぞれ、適当なパラメータやコマンド名を補って下さい。 また、カーソルキーの上下で過去に実行したコマンド履歴の参照もできます。 MS-DOS 版では、 編集ライン中で引用符 " で括られた LFN 形式のファイル名は、 自動的に 8+3 形式のファイル名に置き換えられてから実行されます。 この時、" で括られた文字列で表されるファイル名が存在する時には全て、 " を削除した上で 8+3 形式のファイル名に変換しますが、 そのファイル名が存在しない場合は、 " を含めて変換を行ないません。

    ファイルのコピー (Copy)
        カーソル位置のファイルを指定のディレクトリにコピーします。 カーソル位置がディレクトリだった場合には、 ディレクトリの中を再帰的にコピーできます。 マークされたファイルがある場合は、 カーソル位置のファイルではなくマークファイルが対象となります。 また、コピー先に同名ファイルが存在した場合、 「日付の新しいファイルを上書き」 「名前を変えてコピー」 「全て上書き」 「同名ファイルはコピーしない」 の中から処理を選択できます。

    ファイルの削除 (Delete)
        カーソル位置のファイルを削除します。 ディレクトリは削除できません。 マークされたファイルがある場合は、 カーソル位置のファイルではなくマークファイルが対象となります。 書込み権のないファイルの場合には、安全のため確認を取ります。

    ファイル名の変更 (Rename)
        カーソル位置のファイルのファイル名を変更します。 既に存在するファイルと同じ名前には変更できません。 また、新しいファイル名としてディレクトリ付きのパス名を指定すると、 ファイル移動も同時に行なわれることになります。

    ファイルのソート (Sort)
        カレントディレクトリ内のファイルをソートして表示します。 ソートのタイプは 「名前順」「拡張子順」「サイズ順」「日付順」「長さ順」の中から選び、 更に「昇べき」「降べき」を指定します。 ソート前のソートタイプが「ソートしない」以外だった時は、 選択肢の中に「ソートしない」も含まれるようになります。 また、一度ソートした後に別のタイプでソートすると、 以前のソート結果を基準にしてソートし直します。 なお、このソートには指定したタイプ以外に優先順位があり、 「ソートしない」以外のソートタイプでは、 ディレクトリファイルは通常ファイルよりも常に先んじて並べられます。 また、「長さ順」ではファイル名長が同じもの同士は名前順で並べます。 但し、このソートは fd の中で便宜上そう見えているだけで、 ディレクトリの移動等を行なえば元の並びに戻ります。

    ファイルの検索 (Find)
        ワイルドカードにマッチしたファイルだけを画面に表示するようにします。 先頭が '.' で始まるファイル名は、 '*' や '?' で始まるワイルドカードにマッチしません。 検索表示を解除したい場合は、ディレクトリを移動するか、 再度 FIND_FILE を実行して空行を入力して下さい。 また、カレントディレクトリに、 アーカイブブラウザの登録されている拡張子のファイルが存在した場合、 検索文字列の先頭を '/' で始めると、 ファイル名そのものの検索ではなく、アーカイブファイル内のファイル名を検索し、 マッチしたファイルを持つアーカイブファイルのみ画面に表示します。 この機能はアーカイブブラウザ内でも利用できます。 なお、検索表示中は WRITE_DIR は実行できません。

    ディレクトリのツリー表示 (Tree)
        カレントディレクトリを基準としたツリー構造を表示します。 ツリー表示モード内で移動したい先のディレクトリを選択すると、 カレントディレクトリを移動します。

    ファイルの編集 (Editor)
        カーソル位置のファイルを編集します。 編集に用いるエディタは、内部変数 EDITOR を参照して用いますが、 内部変数が未定義の場合には環境変数 EDITOR を参照します。

    アーカイブファイルの伸長 (Unpack)
        カーソル位置のアーカイブファイルを指定ディレクトリ先に伸長します。 デフォルトでは、tar ファイルとその圧縮ファイル及び lha 圧縮ファイルしか 伸長できませんが、初期設定ファイルに記述することで、 これ以外のアーカイバにも対応できるようになります。

    ファイル属性の変更 (Attr)
        カーソル位置のファイルの、 ファイルアクセスモードとタイムスタンプを変更します。 マークされたファイルがある場合は、 カーソル位置のファイルではなくマークファイルが対象となります。 マークファイルの場合は、 モードかタイムスタンプかのどちらかを選んでから、 入力したものを一括変更することになります。 モードの入力は、カーソルキーで変更したい位置へカーソルを移動し、 [Space] でその位置の属性を反転させます。 実行ビットの属性は、2 値のトグルではなく、 それぞれ setuid ビット、setgid ビット、 sticky ビットを含んだ 3 値のトグルになっていますので注意して下さい。 タイムスタンプの入力は、変更したい位置にカーソルを持っていって、 数値を入力するだけです。 最終的に、 [Return] を押した時点で実行されます。 中断する場合は [Esc] です。 日付の範囲チェックは完全ではありませんので気をつけて下さい。 なお、 [a](Attr), [d](Date), [t](Time) を入力すると、 各々の入力ラインの先頭位置にカーソル移動します。 また、ファイルフラグ属性のある OS では、 モードの変更と同様にファイルフラグも変更できます。 但し、変更できるフラグの値は実行ユーザの権限に準じます。

    ファイルシステムの情報表示 (Info)
        指定されたファイルシステムの情報を表示します。 入力されたパスがファイルシステムを表すスペシャルファイルでなかった場合は、 そのパスを含むファイルシステムの情報を示します。

    ファイルの移動 (Move)
        カーソル位置のファイルを指定のディレクトリに移動します。 カーソル位置がディレクトリだった場合には、 ディレクトリそのものを移動します。 マークされたファイルがある場合は、 カーソル位置のファイルではなくマークファイルが対象となります。 移動先に同名ファイルが存在した場合、 COPY_FILE 同様、処理の選択ができます。 また、移動先が異なるファイルシステムの場合は、 単にコピーと削除を連続して実行しますが、 この場合ディレクトリの移動はできません。

    ディレクトリの削除 (rmDir)
        カーソル位置のディレクトリファイルを、 再帰的に削除します。 但し、ディレクトリが symbolic リンクの場合には、 リンクの削除のみ行ない、リンク先のディレクトリには影響を与えません。

    ディレクトリの作成 (mKdir)
        カレントディレクトリの下にサブディレクトリを作成します。 入力したサブディレクトリ文字列に、 パス名デリミタである '/' が含まれていた場合、 最終的にその文字列で示されるディレクトリが作成されるまで、 再帰的にディレクトリ作成を繰り返します。 '/' で始まるパス名を入力すれば、 カレントディレクトリ下でなく、 表される絶対パスにディレクトリを作成します。

    子プロセスの実行 (sHell)
        入力されたコマンド文字列を sh(1) に渡して子プロセスとして実行させます。 EXECUTE_FILE と同様にコマンド履歴の参照や MS-DOS 版での LFN 自動変換もできます。 また、何も入力せずに [Return] のみ入力すると、 内部変数もしくは環境変数 SHELL の指すユーザシェルを起動します。 この場合、 fd に戻るためには "exit" と入力して下さい。 但し、組込みコマンド及び内部コマンドに同じコマンド名があった場合、 外部コマンドに優先して組込みコマンド及び内部コマンドが実行されます。 組込みコマンドの詳細は、 `組込みコマンド' の項を参照して下さい。

    表示ディレクトリの書込み (Write)
        現在表示されているディレクトリの書込みをします。 ディレクトリエントリ上のファイル間の隙間も詰めて書込まれます。 PUSH_FILE, POP_FILE や SORT_DIR で並び替えた後であれば、その結果を書込むことになります。 表示ディレクトリがホームディレクトリ下の階層に属していなかった場合、 安全のため、他のユーザが利用していないかどうかの確認を求めます。 セキュリティ上不安定なので、 NFS マウントされたディレクトリや一部の特殊ディレクトリ上では書込みできません。 また、ファイルの並び替えをするような内部コマンド実行後に、 その並びを崩してしまう内部コマンドを実行しようとすると、 その内部コマンド実行の直前に、 書込みを行なうかどうかを問い合わせしてきます。 この機能のため、 明示的にこの書込みコマンドを実行しなくても ディレクトリの書込みを行なうことがあります。 但し、表示ディレクトリがホームディレクトリ下になかった場合は、 この問い合わせを行ないません。

    テープへのバックアップ (Backup)
        カーソル位置のファイルを指定デバイスの記録装置にバックアップします。 カーソル位置がディレクトリだった場合には、 その中身を全て保存します。 マークされたファイルがある場合は、 カーソル位置のファイルではなくマークファイルが対象となります。 バックアップには tar(1) を用います。 デバイス名の入力の際に、デバイスを示すスペシャルファイル以外を与えた場合、 そのファイル名でアーカイブファイルを作成します。

    ファイルの閲覧 (View)
        カーソル位置のファイルを閲覧します。 閲覧に用いるページャは、 内部変数 PAGER を参照して用いますが、 内部変数が未定義の場合には環境変数 PAGER を参照します。

    ファイルの圧縮 (Pack)
        カーソル位置のファイルを指定のアーカイブファイルに圧縮します。 カーソル位置がディレクトリだった場合には、 その中身を全てアーカイブファイルに入れます。 マークされたファイルがある場合は、 カーソル位置のファイルではなくマークファイルが対象となります。 入力したアーカイブファイルの拡張子を見て、 それぞれに応じたアーカイバを自動的に選択します。 デフォルトでは、 tar ファイルとその圧縮ファイル及び lha 圧縮ファイルにしか圧縮できませんが、 初期設定ファイルに記述することで、 これ以外のアーカイバにも対応できるようになります。 但し、 tar(1) を用いる場合は、 一度に渡せるパラメータ長の限界のせいで、 たくさんのファイルを一度に圧縮することができない場合があります。 そのような場合は、 BACKUP_TAPE を用いてアーカイブファイルを作成して下さい。

    ツリーを用いたファイル操作
        [L], [C], [M], [U] を押すと、 パス名の入力の際に、 文字列を入力する代わりにツリー構造の中から選択させることができます。 それぞれ、 LOG_DIR, COPY_FILE, MOVE_FILE, UNPACK_FILE と同等の機能の内部コマンドが実行されます。

    ファイルの検索移動
        ワイルドカードにマッチするファイルを、 カレントディレクトリから下に階層的に検索し、 見つかったファイルのあるディレクトリに移動します。 カーソル位置がディレクトリだった場合は、 カレントディレクトリでなく、カーソル位置のディレクトリの下を検索します。 マッチした個々のファイルに対し、 そこに移動するかどうかを確認してきますので、 目的のファイルが表示されるまでは [n](No) を選択して下さい。

    symbolic リンク表示形式の切替え
        ファイル表示欄やステイタス行に表示されるファイル情報は、 symbolic リンクファイルの場合には、 リンク先の本体ではなくリンクファイルのものになっています。 これを、トグルスイッチでリンク先本体の情報を参照するように切替えます。 (U) リンク本体情報参照モードでは、 ファンクション行の左端に 'S'(Symbolic Link) と表示されます。

    ファイルタイプシンボル表示の切替え
        ls(1) の -F オプションでの表示と同様に、 ファイル一覧リストのファイル名の欄に、 そのファイルのタイプを表すシンボル文字を付加して表示します。 トグルスイッチでシンボルの表示非表示を切替えます。 各シンボルの意味は以下のとおり。
        /	ディレクトリ
        @	シンボリックリンク
        *	実行可能ファイル
        =	ソケット
        |	FIFO
        (MS-DOS 版及びフロッピードライブ)
        /	ディレクトリ
        *	実行可能ファイル
        =	システムファイル
        |	ラベル
        ファイルタイプ表示モードでは、 ファンクション行の左端に 'T'(Type) と表示されます。

    ドットファイル表示非表示の切替え
        '.' で始まるファイル名のファイルを、 ファイル一覧内に表示しないようにします。 トグルスイッチでドットファイルの表示非表示を切替えます。 ドットファイル非表示モードでは、 ファンクション行の左端に 'H'(Hidden) と表示されます。

    ファイルフラグ表示の切替え
        各ファイルのファイルモードの代わりに、 一部の OS にあるファイルフラグを表示します。 トグルスイッチでファイルフラグの表示とファイルモードの表示を切替えます。 ファイルフラグのない OS では機能しません。 各シンボルの意味は順に以下のとおり。 (U)
        A	Archived
        N	Nodump
        a	system Append-only
        c	system unChangable (immutable)
        u	system Undeletable
        a	user Append-only
        c	user unChangable (immutable)
        u	user Undeletable
        ファイルフラグ表示モードでは、 ファンクション行の左端に 'F'(Flags) と表示されます。

    ファイル名の検索
        カレントディレクトリ内でファイル名をインクリメンタルサーチし、 カーソルを移動していきます。 コマンドを実行するとサーチモードに移行し、 ファンクション行にプロンプトが現れますので、 ここで検索したいファイル名をキー入力していくと、 その時点で入力されている文字列にマッチするファイル名に カーソルが順次移動していきます。 [Esc] で通常モードに復帰できます。

    ランチャの起動
        サブディレクトリ以外のカーソル位置で [Return] を押すと、 それぞれのファイル拡張子に応じた動作をします。 デフォルトでは、 tar ファイルとその圧縮ファイル及び lha 圧縮ファイルに対し、 アーカイブブラウザが登録されています。 初期設定ファイルに記述することで、 これ以外のコマンドもランチャとして登録することができます。 カーソル位置が未登録の拡張子のファイルだった場合は、 VIEW_FILE と同じ挙動を示します。 アーカイブブラウザ画面でも、 登録ランチャは有効に機能し、 再帰的にアーカイブブラウザを起動することも可能です。

    ヘルプ画面の表示
        現在のキー割当てとそのコマンド内容を一覧表示します。 一画面に収まりきらない場合は一画面分の表示で一旦キー入力を待ちます。 また、バイナリ頒布の実行ファイルでは、 この画面のファンクション行に頒布責任者の連絡先が表示されますので、 何かあった場合にはこちらの連絡先にご一報下さい。

    fdの終了 (Quit)
        fd を終了します。

  組込みコマンド
fd では以下の組込みコマンドが用意されています。 これらの組込みコマンドは、 EXECUTE_SH や初期設定ファイルの中で用いることができます。

NAME=[value]
    fd 内でのみ有効の内部変数の定義を行ないます。 内部変数 NAME に値(文字列) value を代入します。 value を省略すると、内部変数 NAME の定義を削除します。 内部定数値としてナルを登録したい時には、 value として "" を指定します。

!num
    数値 num で表される履歴番号のコマンドを実行します。 num が負数だった場合は、現在の履歴番号から相対的に数えて num 番目の履歴番号のコマンドを実行します。

!!  直前のコマンドを実行します。 !-1 と同義です。

!str
    文字列 str で始まる行のコマンド履歴を実行します。

alias [name [com]]
    コマンド com の別名として name をエイリアス定義します。 定義されたエイリアスは、 EXECUTE_SH の入力ラインのほか、 後述の各コマンドマクロ内に用いることができます。 エイリアスによる置換は再帰的には行なわれません。 com を省略すると、 name のエイリアスを表示します。 com も name も省略すると、現在定義されている全てのエイリアスを一覧表示します。

arch ext [pack unpack]
    拡張子 ext のアーカイブファイルに対するアーカイバコマンドを登録します。 pack には圧縮時のコマンドを、 unpack には伸長時のコマンドを、 それぞれ " で括ったマクロ表記で記述します。 pack, unpack 共に省略すると、拡張子 ext に対するアーカイバ登録を削除します。

bind c [com1 [com2] [;comment]]
    キー c に対して、コマンド com1 を割当てます。 c にコントロール文字を指定したい場合は、 ^ を冠して ^A のように 2 文字で記述します。 Meta キー (MS-DOS 版では Alt キー) を併用する文字を指定したい場合は、 @ を冠して @a のように 2 文字で記述します。 ファンクションキーや機能キーを指定したい場合は、 後述の keymap コマンドで用いられている各識別子を用い、 F10 のように文字列で記述します。 また、 \n =0x0a や \e =0x1b といったエスケープ文字列、8 進数を用いた \ooo といった表記もできます。 fd の持つ内部コマンドの割当ては、コマンド識別子をそのまま記述できます。 引数付きで内部コマンドを定義したい場合や、 コマンドをマクロ表記で定義する場合は、 " で括った文字列を記述します。 com2 を省略せずに記述すると、 カーソル位置がディレクトリだった場合に com2 の方を実行します。 キー c が F1 から F10 のファンクションキーの場合、 コマンドの記述に続いて ; を冠して comment を記述すると、 ファンクション行の該当部分の表示を comment に変更できます。 但し、コントロール文字に対するキー割当てについては、 後述の編集モードの設定が優先しますので気をつけて下さい。 com1, com2 共に省略すると、 キー c に対するキー割当て登録を削除します。

cd dir
chdir dir
    fd 内のカレントディレクトリを dir に移動します。 キーマクロとして "cd $HOME" などと定義しておくと便利でしょう。 パス名として ".", "?", "-", "@" を指定すると、 LOG_DIR と同様の挙動が得られます。

export NAME=[value]
    環境変数 NAME に値(文字列) value を代入します。 この環境変数は、 fd から子プロセスとして呼ばれる外部コマンドに継承されます。 value を省略すると、環境変数 NAME の定義を削除します。 環境変数値としてナルを登録したい時には、 value として "" を指定します。

function name () [{ [com1 [; com2 ...]] }]
    コマンド列 com1, com2, ... を関数 name として定義します。 定義された関数は、 EXECUTE_SH の入力ラインのほか、 上記の各コマンドマクロ内に用いることができます。 コマンド列内に関数を再帰的に用いることはできません。 各コマンドは ';' で区切って最大 16 まで登録できます。 各コマンド記述内では位置パラメータ $n が記述可能で、 これは、関数呼出時の引数を指しています。 $0 が name そのもので、 $1-$9 までが引数を指します。 但し、コマンドラインからの関数呼出時に | > < といった入出力リダイレクトを行なうことはできません。 com1, com2, ... を省略すると、関数 name の定義を取消します。 {} 以降全部を省略すると、関数 name の定義内容を表示します。 name も省略すると、 現在定義されている全ての関数を一覧表示します。

getkey [num]
    押下したキーに対するキーコード文字列を取得します。 コマンド実行後にキー入力待ちになりますので、 検査したいキーを押すと、 そのキーに対するキーコード文字列を表示します。 num 回キーを押下すると終了です。 num が 2 回以上の場合は、 [Space] を押しても終了させることができます。 num が 0 回の場合には [Space] が押されるまで無限に繰り返されます。 ここで表示される文字列は、 そのまま keymap コマンドのキーコード文字列として使用可能です。 (U) num を省略すると、 1 回を指定したものと見なします。

history [n]
    最近の n 個のコマンド履歴を、 履歴番号を添えて一覧表示します。 n を省略すると、 現在記憶されている全てのコマンド履歴を一覧表示します。

keymap [c [str]]
    各種機能キー c のキーコードとして str の文字列をマッピングします。 c には以下の識別子のみ使用可能です。 (U)
    UP	↑	DOWN	↓
    RIGHT	→	LEFT	←
    BEG	Begin	EOL	Eol
    HOME	Home	END	End
    INS	Insert	DEL	Delete
    INSLIN	InsLine	DELLIN	DelLine
    PPAGE	PageUp	NPAGE	PageDown
    ENTER	Enter	BS	Bs
    CLR	Clear	HELP	Help
    PLUS	+ (tenkey)	MINUS	- (tenkey)
    ASTER	* (tenkey)	SLASH	/ (tenkey)
    COMMA	, (tenkey)	DOT	. (tenkey)
    EQUAL	= (tenkey)	RET	Return (tenkey)
    TK0..TK9	0-9 (tenkey)
    F1...F20	ファンクションキー
    キーコード文字列内では、 \n =0x0a や \e =0x1b といったエスケープ文字列が使用可能です。 8 進数を用いた \ooo といった表記もできます。 また、 ^ を冠して ^A のようにコントロール文字を記述することもできます。 ^ 自身は \^ と記述します。 str を省略すると、 c に対するキーコード文字列を表示します。 str も c も省略すると、現在特殊キーに割当てられている全てのマッピングを一覧表示します。 str に対し "" を指定すると、 c に対するキーコードマッピングを無効にします。

launch ext [com [format]]
    拡張子 ext に対する挙動をランチャとして登録します。 com にはコマンドのマクロ表記を " で括って記述します。 アーカイブブラウザを登録する場合には、 com にはアーカイブファイルの一覧表示のためのコマンドを記述し、 format に一覧表示形式のフォーマットを記述します。 com を省略すると、拡張子 ext に対するランチャ登録を削除します。

printarch [ext]
    拡張子 ext のアーカイブファイルに対して登録されているアーカイバコマンドを表示します。 ext を省略すると、 現在登録されている全てのアーカイバコマンドを一覧表示します。

printbind [c]
    キー c に割当てられているコマンドを表示します。 キーの指定方法は bind コマンドと同様です。 c を省略すると、 現在登録されている全てのキー割当てのうち、 内部コマンドではなくコマンドマクロとして定義されているものを一覧表示します。 各内部コマンドのキー割当ては、 HELP_MESSAGE で参照できます。

printdrv [c]
    ドライブ名 c に対して登録されているフロッピードライブのデバイスファイル 及びそのヘッド数、セクタ数、シリンダ数を表示します。 (U) c を省略すると、 現在登録されている全てのフロッピードライブを一覧表示します。

printenv [NAME]
    内部変数 NAME に対して定義されている値を表示します。 NAME を省略すると、 現在定義されている全ての内部変数を一覧表示します。

printlaunch [ext]
    拡張子 ext に対してランチャとして登録されているコマンドマクロを表示します。 アーカイブブラウザとして登録されているものについては、 一覧表示形式のフォーマットを併記します。 ext を省略すると、 現在登録されている全てのランチャを一覧表示します。 アーカイブブラウザの場合の併記は文字列 `(Arch)' のみになります。

setdrv c device hd, sc, cl
    MS-DOS フロッピーを扱うドライブ名 c に device で表されるデバイスファイルを指定します。 同時に、 device のドライバで扱うフォーマットの ヘッド(サイド)数、セクタ数、シリンダ(トラック)数を、 それぞれ hd, sc, cl で指定します。 特殊な例として、720KB2DD(hd=2/sc=9/cl=80) しか扱えない ドライバで 640KB2DD(hd=2/sc=8/cl=80) のフロッピーを扱いたい場合、 sc の値として 100 加えた値(108)を指定します。 (U) PC 上で動作する PC-UNIX 環境では、 hd, sc, cl の代わりに文字列 HDD もしくは HDD98 を指定することで、 MS-DOS フロッピーではなく、 それぞれ PC/AT 互換機用と PC-98x1 用の ハードディスクの MS-DOS パーティションを登録することができます。 この場合、 デバイスファイルにはパーティション (スライス) 単位のデバイス名ではなく、 物理ドライブ装置単位のデバイス名を記述します。 ドライブ装置に含まれる MS-DOS パーティションが、 ドライブ名 c 以降のドライブ名に自動的に展開されます。 指定ドライブ装置に MS-DOS パーティションが含まれていなかった場合には、 このコマンドは無視されます。 どのドライブ名が有効になったかは、 printdrv コマンドで確認できます。 但し、安全のため、ハードディスクは読込専用で登録されます。

source file
    設定ファイル file を読み込んで評価します。 設定ファイルの書式は初期設定ファイルに準拠します。 設定ファイル内で入れ子にしてファイルを読み込ませることもできます。

unalias name
    エイリアス name の定義を取消します。 name にはワイルドカードを用いることが可能で、 その場合にはマッチする全てのエイリアス定義を取消します。 "*" を指定すれば、全エイリアス定義が無効になります。

unsetdrv c device hd, sc, cl
    既に登録されているフロッピードライブの登録を削除します。 device, hd, sc, cl の全てが一致した登録のみ削除されるので、 よく確認して削除して下さい。 (U) setdrv 時に HDD または HDD98 で登録した場合には、 hd, sc, cl の代わりにそれぞれ HDD 及び HDD98 を記述します。

COMMAND [arg]
    fd の持つ内部コマンド COMMAND を実行します。 COMMAND には、各コマンド識別子を記述します。 一部の内部コマンドでは、 実行回数や対象ディレクトリ等のパラメータを引数 arg として記述できます。

但し、 printenv 等の画面表示を伴う組込みコマンドは、 初期設定ファイル内で実行することはできません。 また、上記の各登録文字列内の ~ や $ は展開されますが、 " の代わりに ' で括られた文字列内では、 これらの展開が抑制されます。

  ツリー表示画面
ツリー表示画面では、 ファイルシステム全体の構造をツリーで表すには時間がかかり過ぎるので、 最初は直系の親に当たるディレクトリと、 カレントディレクトリ直下のサブディレクトリのみ表示します。 直系の親に当たるディレクトリでは、 その他のサブディレクトリ(あった場合)を "..." で一括して表します。 このように一括表示されたサブディレクトリでは、 カーソルがその位置に来ると自動的に展開するようになっています。 まだその内部を展開していないサブディレクトリには、 ファイル名の後ろに '>' をつけてその旨を表記します。 このようなディレクトリは、明示的に展開を要求しない限りは展開しないので、 展開されていないサブディレクトリ下に移動したい場合は 下記に示すキー入力により展開してから移動して下さい。 ツリー表示モードでは、以下のキー入力が有効です。
    ↑, ↓
        カーソル移動
    →   カーソル位置のサブディレクトリの展開
    Tab カーソル位置のサブディレクトリの展開(再帰的)
    PageUp, PageDown
        半画面分のカーソル移動
    Home(<), End(>)
        ツリーの先頭、最後尾にカーソル移動。
    ?   カレントディレクトリにカーソル移動。
    Bs  親ディレクトリにカーソル移動。
    ←   カーソル位置のサブディレクトリの一括化。 または親ディレクトリにカーソル移動。
    (, )
        同じ階層のサブディレクトリで、前(次)のディレクトリにカーソル移動。
    A - Z
        そのキーの文字及びその子文字を頭文字とするような 名前を持つディレクトリにカーソル移動。
    l   ツリー表示ディレクトリの変更。 フロッピードライブへの移動も行なえます。
    ^L  ツリー構造の再描画
    Return
        ディレクトリの選択
    Esc キャンセル

なお、再帰的にディレクトリの展開を行なっている時など、 マシンの処理が遅くてフリーズしているように見える場合があるかも知れません。 このような場合には、処理中に何らかのキーを入力して下さい。 ディレクトリの展開中にキー入力を認めた場合、 途中であってもその時点でディレクトリの展開を中止します。 キーリピートが効き放しになった場合でも、 この機能のおかげで処理が溜らないようになっています。

  アーカイブブラウザ
アーカイブブラウザの登録されている拡張子のファイル位置でランチャを起動すると、 アーカイブブラウザ画面になります。 この画面では、通常のディレクトリ内と同じように、 アーカイブファイル内のファイルをブラウジングしていくことができます。 但し、この画面では以下の内部コマンドは使用できません。
    LOG_TOP	PUSH_FILE	POP_FILE	LOG_DIR
    ATTR_FILE	COPY_FILE	MOVE_FILE	DELETE_FILE
    DELETE_DIR	RENAME_FILE	MAKE_DIR	WRITE_DIR
    TREE_DIR	EDIT_FILE	LOG_TREE	COPY_TREE
    MOVE_TREE	FIND_DIR	SYMLINK_MODE	DOTFILE_MODE
    FILEFLG_MODE
また、新しいアーカイブブラウザを登録したい場合、 以下のような書式でアーカイバの一覧表示形式のフォーマットを記述してやる 必要があります。 このフォーマット文字列ひとつで、 一覧表示の 1 行分の表示形式を表すことになります。
    "t, b: f1, f2, ..., f9 [: [s1, ...][: l]]"

    t	一覧の先頭行からの不必要な行の行数
    b	一覧の最終行からの不必要な行の行数
    f1	ファイルモードを表す文字列範囲の記述
    f2	ファイルの UID を表す数値文字列範囲の記述
    f3	ファイルの GID を表す数値文字列範囲の記述
    f4	ファイルサイズを表す数値文字列範囲の記述
    f5	ファイル作成年を表す数値文字列範囲の記述
    f6	ファイル作成月を表す文字列範囲の記述
    	(表示は数値でも英字 3 文字表記でもどちらでも可。)
    f7	ファイル作成日を表す数値文字列範囲の記述
    f8	ファイル作成時間を表す文字列範囲の記述
    	(表示は "HH:MM:SS" 形式。分や秒はなくても可。)
    f9	ファイル名を表す文字列範囲の記述
    s1, ...	強制フィールドセパレータの位置
    l	一つのファイル情報が表示される行数
    (f1 から f9 は省略不可)

ここでは、 「フィールド」とは空白文字またはタブ文字で分けられている領域のことを指します。 各情報を表す文字列の範囲を表現する際に、 空白文字やタブ文字では分離できない場合、 境界となる位置を行頭からの文字数で s1, ... に記述し、 その位置を強制的にフィールドの境界と見なすことにします。 強制セパレータ位置は無条件でフィールド境界になるので、 この位置に空白文字やタブ文字があったとしても、 やはりフィールド境界になります。 この強制セパレータ位置の記述は、 ひとつのフォーマット文字列につき 3 箇所まで有効です。 空白文字とタブ文字だけで完全に分けられるような場合は、 ':' も含めて s1 以降の記述は必要ありません。 l を記述すると、一つのファイル情報に付き 複数行の表示を出力するようなフォーマットにも対応できます。 省略した場合は一つのファイルは単一行に表示されると見なすので、 必要なければ ':' も含めて特に記述する必要はありません。 但し、前述の s1, ... と区別するために、 s1, ... を省略して l のみ記述する場合には、 ':' を 2 つ続けて記述する必要があります。 各文字列範囲の記述は、以下のように表現されます。
    f? = "start[-end]"

start は、文字列の開始位置を示します。 丁度フィールド境界に開始位置が来る場合は、 単に行頭から数えたフィールドの順番を記述します。 第 n フィールドの中で文字 c の後ろから始まるという場合は、 "n'c'" と記述します。 第 n フィールドの中で i 文字目から始まるという場合は、 "n[i]" と記述します。 また、その情報を表す文字列が存在しない場合には、 0 を記述しておきます。 end は、 文字列の終了位置を示します。 丁度フィールド境界に終了位置が来る場合は、 '-' も含めて何も記述する必要はありません。 フィールド開始位置から文字 c の直前までという場合は、 "'c'" と記述します。 フィールドの開始位置から数えて n 文字目までという場合には、 単にその数値 n を記述します。 例として、幾つかのアーカイバの一覧表示形式のフォーマットを、 この書式で記述して挙げておきます。
`lha l'
    "2,2: 1,2-'/',2'/',3,0,5,6,7,8"
`lha v' (MS-DOS)
    "5,2: 0,0,0,2,5-'-',5[4]-'-',5[7],6,1::2"
`tar tvf' (BSD)
    "0,0: 1-9,2-'/',1'/',2,6,3,4,5,7:10"
`tar tvf' (SVR4)
    "0,0: 1,2-'/',2'/',3,7,4,5,6,8"

以上のフォーマットを用いて、 EXECUTE_SH の組込みコマンドもしくは 初期設定ファイルによって登録を行なえば、 デフォルトで用意してあるアーカイブブラウザ以外も使用できるようになります。 但し、アーカイブファイル内のファイルを実行したり閲覧したりするためには、 そのアーカイブファイル用のアーカイバコマンドも登録しておく必要がありますので、 注意して下さい。 一部の OS では、 環境変数 LANG に japanese を指定しておくと、 タイムスタンプの表示に "HH時 MM分 SS秒" という 日本語混在の出力をする tar(1) が存在します。 このような表示形式は fd では解析できないので、 この場合は初期設定ファイルで `export LANG=C' としておくか、 一覧表示用のコマンド記述で `LANG=C tar tvf' のように LANG を指定すると良いでしょう。

  フロッピードライブ (U)
ディレクトリ名の先頭に "c:" をつけて書き表すことで、 MS-DOS フォーマットのフロッピーにアクセスすることができます。 但し、フロッピードライブの登録と、 この機能を有効にするための環境変数 DOSDRIVE の設定を事前に行なっておくことが必要です。 登録された各ドライブは、ドライブ名によって区別されます。 物理的に異なるドライブには必ず異なるドライブ名をつけて下さい。 同一のドライブで複数のフォーマットに対応している場合は、 それぞれのフォーマットの登録を同じドライブ名で行なっても構いませんし、 それぞれ異なるドライブ名で行なっても構いません。 同じドライブ名をつけられた場合には、 登録されている順番にフォーマットの適合を試みますので、 よく使うフォーマットの登録を先に持ってきた方が良いでしょう。 フロッピードライブはドライブ単位でカレントディレクトリを持っています。 この初期値はルートディレクトリで、 フロッピーを入れ換えるとカレントディレクトリは 再びルートディレクトリに戻ります。 ディレクトリ名として ':' の後ろを '/' で始めると、 そのドライブの絶対パス表記になります。 この '/' がないと、そのドライブのカレントディレクトリからの 相対表記と見なされますので注意して下さい。 但し、 WRITE_DIR, INFO_FILESYS など一部の内部コマンドは、 フロッピードライブに対応していませんのでご了承下さい。 また、ファイル名長などの制限から、 UNIX 上のファイルをコピーした場合に名前が変更される場合があります。 ドライブ名として小文字を用いると、 MS-Windows format floppy の Long File Name (LFN) が扱える フロッピードライブとしてアクセスできます。 この場合、UNIX 上の長いファイル名もそのままコピーすることができます。 但し、UNICODE の変換テーブル fd-unicd.tbl が、起動された fd の存在するディレクトリにない場合は、 漢字のファイル名は LFN 形式では扱えません。 逆に、大文字のドライブ名を用いると、 LFN を無視して 8+3 形式のファイル名を扱います。 このドライブ名の大小による仕様は、 MS-DOS 版にもそのまま継承されています。

  文字列の入力
パス名などの文字列を入力する場合には、 以下のキー入力が有効です。 参照される履歴の種類は要求される入力文字列によって異なります。
←, →
    カーソル移動。
↑, ↓
    これまでの履歴 (コマンド及びパス名のみ) の参照。 またはカーソル移動。
Beg 文字列の先頭にカーソル移動。
Eol 文字列の最後尾にカーソル移動。
Del カーソル位置の一文字を消去。
Bs  カーソル直前の一文字を消去。
DelLin
    カーソル以降の文字列全てを消去。
InsLin
    後続の入力文字をそのまま入力文字として扱います。 コントロール文字の入力に有効です。
Enter
    現在のカーソル位置のファイル名を取込。
Tab カーソル位置でパス名の補完。 または補完選択候補リスト内での候補移動。 選択候補が複数ある場合には、 何度か入力し続けることにより選択候補リストが表示されます。
^L  入力文字列の再描画。
Return
    入力決定。 または補完選択候補リスト内での候補決定。
Esc キャンセル。

また、入力された文字列は、評価される直前に以下のような展開が行なわれます。 この展開は、コマンドマクロの文字列中でも有効です。 但し、引用符 ' で括られた文字列中においては この展開は抑制されます。

~   ファイル名の先頭にあって、ユーザ本人のホームディレクトリを指します。

~user
    ファイル名の先頭にあって、 user のホームディレクトリを指します。 (U)

~FD ファイル名の先頭にあって、起動された fd の存在するディレクトリを指します。

$NAME
${NAME}
    内部変数、または環境変数 NAME の値を指します。 重複して定義されている場合は、内部変数の方が優先します。 どちらにも未定義だった場合はナルに置き換わります。 中括弧 { } は NAME を後続の文字から分離します。

\c  文字 c 自身を示します。 上記の ~ や $ などのメタキャラを評価せずにそのまま文字として使いたい時に用います。 \ 自身は "\\" と表します。 但し、MS-DOS 版では、パスデリミタに用いられる \ は通常文字と同様に処理されなくてはならないため、 便宜上 $c の形で \ の代用とします。

  編集モード
カーソルキーやスクロールキーなど、 特殊機能キーに割り当てられている機能を利用したい場合、 端末の設定によっては対応するキーが存在しないこともあります。 そのような場合、内部変数 EDITMODE に文字列を設定することで、 コントロール文字をこれらの特殊キーの代わりに用いることができます。 また、これらの代替キー機能は、 組込みコマンドによるキー割当て変更に優先しますので、 ここで代替キーとして用いられているコントロール文字については キー割当ての変更が無効になります。 用意されている編集モードは以下の 3 つです。

emacs
    ^P	= ↑	^A	= Beg
    ^N	= ↓	^E	= Eol	^D	= Del
    ^F	= →			^Q	= InsLin
    ^B	= ←			^K	= DelLin
    ^V	= PageDn	^Y	= PageUp	^O	= Enter
    ^M	= Return	^I	= Tab	^H	= Bs
    ^[	= Esc	^G	= Esc

wordstar
    ^E	= ↑	^A	= Beg	^V	= Ins
    ^N	= ↓	^F	= Eol	^G	= Del
    ^F	= →	^W	= Home	^]	= InsLin
    ^S	= ←	^Z	= End	^Y	= DelLin
    ^C	= PageDn	^R	= PageUp	^N	= Enter
    ^M	= Return	^I	= Tab	^H	= Bs
    ^[	= Esc

vi  vi モードは 「挿入モード」と「コマンドモード」の 2 つのローカルモードを持ち、 それぞれのモードでキーの機能が全く異なります。 入力開始時はコマンドモードにいるので、 一般のキー入力を行なうには 挿入モードへ移行する 4 種類のキーのいずれかを入力する必要があります。
    (コマンドモード)
    k	= ↑	0	= Beg	I	= Ins
    j	= ↓	$	= Eol	x	= Del
    l	= →	g	= Home
    h	= ←	G	= End	D	= DelLin
    ^F	= PageDn	^B	= PageUp	o	= Enter
    ^M	= Return	^I	= Tab	^H	= Bs
    ^[	= Esc
    (コマンドモードから挿入モードへ)
    i, :	= モードの移行のみ
    a	= + →	A	= + Eol
    (挿入モード)
    ^V	= InsLin	Esc	= コマンドモードへ
    かなり特殊なキー割当てなので、 日常的に vi エディタを用いていない人には不向きでしょう。

  パラメータマクロ
コマンドマクロの登録、及びコマンド実行用に入力する文字列内では、 以下のパラメータマクロが使用できます。

%C  カーソル位置のファイル名。 但し、アーカイバコマンド登録用マクロではアーカイブファイルを指します。

%X  カーソル位置のファイル名の拡張子を除いた部分。 但し、アーカイバコマンド登録用マクロではアーカイブファイル の拡張子を除いた部分を指します。 拡張子は最後尾の一個だけ除かれます。 また、 %X に続けて T, TA, M を記述すると、 それぞれ %T, %TA, %M の拡張子を除いた部分になります。 MS-DOS 版では同様に S を続けて記述できます。

%P  カレントディレクトリのパス名。

%K  コマンド終了後、キー入力を待ってから fd に戻ります。 但し EXECUTE_FILE, EXECUTE_SH では %K の意味は逆になり、 デフォルトでキー入力を待ち %K の指定があれば入力待ちしません。 また、ランチャのアーカイブブラウザ登録用マクロや、 アーカイバコマンド登録用マクロでは、 無条件にキー入力待ちはできません。

%T  マークファイルを可能な限り空白で区切って羅列します。 ファイルが多くてコマンド行が 1023 文字を越えるような場合には、 残りのマークファイルは無視されます。

%TA %T と同様にマークファイルを羅列しますが、 コマンド行から溢れたファイルは、 再度同じコマンドを実行することで、 マークの最後までファイル名が渡されます。

%M  マークファイルを一個ずつ渡し、 マークの数だけ同じコマンドを順々に実行します。 MARK_FIND で検索マークしてから、 EXECUTE_SH で "mv %M %XM.bak" などとすると便利でしょう。

%N  パラメータが省略された場合のファイル名の追加を抑制します。

%R  マクロ実行時に、コマンド文字列の長さに余裕があれば、 追加でパラメータを手入力するようにします。 入力時のカーソル位置は、マクロ中で %R のあった位置になります。 但し、 ランチャのアーカイブブラウザ登録用マクロや、 アーカイバコマンド登録用マクロ、 及び EXECUTE_FILE, EXECUTE_SH では、 %R は無視されます。

%S  カーソル位置の LFN 形式のファイル名を 8+3 形式のファイル名で 置き換えたもの。 8+3 形式の引数しか使えない外部コマンドを用いる時に使います。 また、 %X と同様に、 %S に続けて T, TA, M を記述できます。 (D)

%JS このマクロで囲まれた範囲の文字列の漢字コードを、 シフト JIS に変換します。 (U)

%JE このマクロで囲まれた範囲の文字列の漢字コードを、 EUC 漢字に変換します。 (U)

%JJ このマクロで囲まれた範囲の文字列の漢字コードを、 7bit JIS に変換します。 (U)

コマンドマクロ内でパラメータマクロを展開した結果、 %C や %T などによるファイル名パラメータが一つも渡されなかった場合、 自動的に展開された文字列の最後尾には、 カーソル位置のファイル名が ./filename の形で追加されます。 コマンド実行用の入力文字列の場合、 もしくは %N マクロがあった場合には、 そのようなファイル名の追加は行なわれません。

  カスタマイズ
fd のカスタマイズには、以下のような方法があり、 複数の方法で重複して指定された場合には、この順で優先されることになります。

    EXECUTE_SH の組込みコマンド実行
        各種登録用組込みコマンドを実行することで、 内部変数定義、環境変数定義、エイリアス定義、関数定義、 キー割当て、キーマップ変更、 ランチャ登録、アーカイバ登録、フロッピードライブ登録が可能です。

    コマンドラインオプション
        コマンドラインのオプションに、 `-NAME=value' の形式で値を渡すことにより、 内部変数の定義が可能です。

    .fdrc
        実行ユーザのホームディレクトリにある初期設定ファイル .fdrc に記述しておくことで、 内部変数定義、環境変数定義、設定ファイル読込み、 キー割当て、ランチャ登録、アーカイバ登録が可能です。 各定義や登録の書式は、 EXECUTE_SH の場合と同じです。 なお、行頭が '#' または ';' で始まる行、 及び空行は無視されます。 行の最後尾が '\' で終っている場合は、 その行の記述が次行にも継続しているとみなしますので、 一行が長くなるような場合はこれで分割できます。 また、 .fdrc の読込みに先だって、 システム管理者による初期設定ファイル /etc/fdrc が読込まれます。 このファイルがある場合、 .fdrc で意図的に登録を削除しない限り、 システム管理者の用意した初期設定が有効になります。 .fdrc, /etc/fdrc ともに、環境変数 TERM を用いて端末毎の設定ファイルを用意できます。 .fdrc または /etc/fdrc に続いて .term を添えたファイル名のファイルを用意することで、 環境変数 TERM の値が term であるような場合には、そちらを優先して読みにいくようになります。 この場合、 .fdrc 及び /etc/fdrc の方は読み込まれませんので、 各端末に共通の設定を用意したい場合には、 .fdrc.term や /etc/fdrc.term 内で source コマンドを用いて、明示的に .fdrc や /etc/fdrc を読み込んで下さい。 (U) (MS-DOS 版ではそれぞれのファイル名は $HOME\fd.rc 及び ~FD\fdrc となります。)

    環境変数
        内部変数に定義して有効な変数は、 予め環境変数として定義しておいても有効です。 但し、 fd 内では常に内部変数の方が優先されます。 また、 同じ名前の環境変数が他のアプリケーションでも使われている場合、 fd 用に別の定義をしておきたければ、 各々の環境変数名の前に FD_ の 3 文字を冠したものも同じ用途に使用できます。 この FD_ を冠した環境変数は、冠していない環境変数よりも常に優先されるので、 FD_ のない内部変数の定義よりも、 FD_ を冠した環境変数の方が有効になります。

環境変数
fd では以下の環境変数が有効です。 これらの環境変数は、すべて内部変数として定義することも可能です。 また、 `-NAME=value' の書式でコマンドラインオプションとして与えることもできます。

SORTTYPE
    ブラウザ画面のファイル一覧リストは、 デフォルトではソートしないようになっていますので、 ディレクトリ内に登録されている順に並べられています。 これを、デフォルトでソートするように定義します。 設定する値は以下のとおり。
    0	ソートしない
    1	名前順	9	名前順(逆順)
    2	拡張子順	10	拡張子順(逆順)
    3	サイズ順	11	サイズ順(逆順)
    4	日付順	12	日付順(逆順)
    5	長さ順	13	長さ順(逆順)
    100-113	直前のソート形式を保持
    100 〜 113 の値を設定した場合、 起動直後は下 2 桁で表される数値のソート形式になりますが、 ディレクトリ移動などの際にはデフォルトのソート形式ではなく、 その直前に指定したソート形式が保持されるようになります。

DISPLAYMODE
    fd 起動時の、 ファイル一覧リストのファイル名表示形式を設定します。 symbolic リンク表示形式、ファイルタイプシンボルの表示、 及びドットファイルの非表示を、それぞれ独立に選択できます。 デフォルトは 0 です。 設定する値は以下のとおり。
    0	標準
    1	SYMLINK
    2		FILETYPE
    3	SYMLINK &	FILETYPE
    4			DOTFILE
    5	SYMLINK &		DOTFILE
    6		FILETYPE &	DOTFILE
    7	SYMLINK &	FILETYPE &	DOTFILE
    なお、ファイルフラグ対応の OS では、 これらの値にそれぞれ 8 を加えた値を設定することで、 ファイルフラグ表示モードを選択できます。

SORTTREE
    ツリー表示画面でディレクトリの並びをソートするようにします。 ソートタイプは SORT_DIR で指定したものを用いますが、 「サイズ順」及び「日付順」になっている場合はソートできません。 また、カレントディレクトリパスに含まれるディレクトリは、 ソートタイプに関係なく常にツリー構造の先頭に来ます。 0 かナル以外の値であれば、何を定義しても有効です。

WRITEFS
    WRITE_DIR コマンドの使用を禁止します。 値を 1 にすると、 明示的にコマンドが実行された時のみディレクトリに対して書込みを行ない、 並び替えの後に書込みの問い合わせをしてこないようになります。 値を 2 にすると、コマンドでの実行すら無効になり、 ディレクトリの書込みが一切禁止されます。

ADJTTY
    fd を終了する時に、端末モードを正常な状態に強制的にリセットします。 端末が文字化けするような状態を、 fd を起動することで正しく調整することができます。 0 かナル以外の値であれば、何を定義しても有効です。 (U)

COLUMNS
    fd 起動時の画面表示列を設定します。 デフォルトは 2 列です。 1, 2, 3, 5 以外の値を指定すると無視されます。

MINFILENAME
    ファイル一覧リスト内の、 ファイル名表示領域の最小文字数を設定します。 端末のカラム数や画面表示列によって、 ここで設定した文字数分だけの領域が確保できない場合には、 UID, GID、タイムスタンプ、サイズ、の順で情報を減じていきます。 デフォルトは 12 文字です。

HISTSIZE
    EXECUTE_FILE や EXECUTE_SH で参照できるコマンド履歴の数の上限を設定します。 デフォルトは 50 個です。 この値が 0 の時にはコマンド履歴参照ができません。

DIRHIST
    ディレクトリ入力行で参照できる ディレクトリ履歴の数の上限を設定します。 デフォルトは 50 個です。 この値が 0 の時にはディレクトリ履歴参照ができません。

SAVEHIST
    コマンド履歴セーブファイルに保存する数の上限を設定します。 デフォルトは 50 個です。 この値が 0 の時にはセーブファイルを作成しません。

DIRCOUNTLIMIT
    ツリー表示モードで、ディレクトリ内のファイルを調べる上限数を設定します。 後ろに '>' のついたディレクトリであっても、 その中にサブディレクトリが一つもなければ、 展開してもツリー構造は変化しません。 ディレクトリ内のファイル数 (ディレクトリも含む) がこの数値以内であれば、 一つもサブディレクトリを持たないディレクトリには、 最初から '>' をつけません。 また、画面右に表示されるディレクトリ内ファイルの一覧も、 この数値を越えては表示しないようになります。 処理の遅いマシンでは、この値を 0 にしておけば、 快適な処理速度が実現できます。 デフォルトは 50 ファイルです。

DOSDRIVE
    MS-DOS フロッピーへのアクセス機能を有効にします。 フロッピードライブの登録がなければ、 ここで有効にしてあってもフロッピーへのアクセスはできません。 0 かナル以外の値であれば、何を定義しても有効です。
    MS-DOS 版では、この値を定義しておくことにより、 Ver. 6.xx 以前の旧 DOS でも LFN 形式のファイル名を扱えるようになります。 この場合、 フロッピードライブの登録は必要ありませんが、 OS を経由せずにディスク I/O を行なうため、 アクセス速度が落ちたり幾つかの機能が制限されたりします。

SECOND
    タイトル行の時計に秒針を表示させるようにします。 但し、正確に時計が調整されるのは 10 秒おきなので、 その間は実時間とのずれが生じています。 0 かナル以外の値であれば、何を定義しても有効です。

SIZEINFO
    ファイルサイズ情報行を画面上端に表示させるようにします。 但し、ここで表示されるトータルサイズは単純にバイト数を合計したものではなく、 実際にディスクを占有しているブロックサイズ単位で合計したものになります。 0 かナル以外の値であれば、何を定義しても有効です。

ANSICOLOR
    ファイル表示をカラー化します。 使用している端末が、 ANSI 規格のカラー制御エスケープシーケンス対応している場合、 ファイルタイプに応じて色別に表示させることができます。 値を 1 にするとカラー画面になります。 文字色が背景色と同色で区別のつかない場合、 値を 2 にすると背景色を強制的に黒色にします。 また、値を 3 にすると表示色を強制的に黒色にします。

EDITMODE
    キー入力の編集モードを文字列で指定します。 デフォルトは emacs です。 emacs, wordstar, vi 以外の文字列またはナルを指定した場合、 コントロール文字は変換されずにそのまま渡されます。

TMPDIR
    アーカイバコマンドが、 アーカイブファイル内のファイルを一時的に伸長するための 作業ディレクトリを設定します。 デフォルトは /tmp です。

RRPATH
    ISO 9660 RockRidge 拡張に対応していない OS 用に、 CD-ROM のマウントされているディレクトリ以下のファイルを 疑似的に RockRidge 拡張して表示します。 ';' で区切って複数のマウントポイントを指定できます。 各マウントポイントの指定は、CD-ROM がマウントされている トップディレクトリだけを記述すれば、 それ以下のディレクトリでは全て疑似 RockRidge 拡張機能が働きます。 但し、飽くまでもこれは疑似的な拡張で、 TRANS.TBL ファイルを参照してファイル名の置換えをしているに過ぎませんので、 TRANS.TBL が不整合な一部の CD-ROM では正しく機能しません。 デフォルトではマウントポイントは一つも指定されていません。

PROMPT
    EXECUTE_SH の入力ラインのプロンプト文字列を指定します。 この文字列内には以下のエスケープ文字列が使用できます。
    \u	ユーザ名 (U)
    \h	ホスト名 (U)
    \H	ホスト名 (ドメイン名を含む) (U)
    \w	カレントディレクトリのフルパス
    \~	カレントディレクトリのフルパス
    	(ホームディレクトリを ~ で簡略表示)
    \W	カレントディレクトリ名
    \!	コマンド履歴番号
    \$	root 時のみ # それ以外では $ (U)
    \[	非印字文字列の開始 (端末制御文字等)
    \]	非印字文字列の終了
    \e	ESC (\033)
    \ooo	8 進数表記 ooo で表される文字
    \\	\ 自身

LANGUAGE
    表示する文字の言語を指定します。 fd の出力する各種メッセージの他、 漢字を含むファイル名に対するコード変換も行なわれます。 選択できる文字種は以下のとおりですが、 これらの文字列が含まれていれば判別しますので、 環境変数 LANG の値をそのまま用いても有効です。
    SJIS, sjis	シフト JIS
    EUC, euc	EUC 漢字
    JIS, jis	7bit JIS
    ENG, eng, C	英語 (メッセージのみ)
    デフォルト	変換しない

INPUTKCODE
    キーボード入力時の漢字コードを指定します。 これら以外の設定にすると、 コンパイル時の設定による漢字コードが採用されます。 文字列が入力された時点で コンパイル時に設定した漢字コードにコンバートされますので、 ネットワーク上の漢字コードの異なるマシンから、 漢字で書かれたファイルを参照することも可能です。
    SJIS, sjis	シフト JIS
    EUC, euc	EUC 漢字

多国語対応
コンパイル時の設定により、 「EUC 漢字」と「シフト JIS」で漢字を入出力できます。 漢字を含むパス名の表示には、漢字の 2byte 目に対する考慮がされています。 入出力に関しては、 内部変数 LANGUAGE 及び INPUTKCODE により、動的に漢字コードを選択できます。 文字列の入力では、 日本語入力フロントエンドプロセッサを用いて漢字の入力が可能です。 コマンドマクロやコマンド文字列内に漢字は使用できますが、 内部変数の値には漢字は使用できません。 '％' や '”' など、2bytes 文字の記号は、 メタキャラクタなどの記号としては用いることができません。 ワイルドカードの検索では、漢字は 1 文字として見なされません。 また、 %JJ などのパラメータマクロを用いて OS 非標準の漢字コードをシェルに渡した場合、 漢字によっては変換後のコードが '$' や '\' といった シェルのメタキャラを含んでしまい、 期待した動作を示さないことがあります。 このような場合、大抵は %' で変換したい文字列部分を括ってやることで回避できます。

著者
白井 隆 <shirai@nintendo.co.jp>。 MS-DOS 用に作られたオリジナルの『ＦＤ』は、 A.Idei <SDI00544@niftyserve.or.jp> 氏によって 1989 年に 最初に作成、公開されました。 fd はこのインプリメントを模して、 1995 年に UNIX 用に一から新たに作成されました。

関連ファイル
/etc/fdrc
    システム共通の fd 初期設定ファイル。
~/.fdrc
    個人用の fd 初期設定ファイル。
~/.fd_history
    コマンド履歴のセーブファイル。
/bin/sh
    環境変数 SHELL が未定義だった場合のユーザシェル。
/bin/rm
    異常終了時に不要ファイルを消去するためのコマンド。
/tmp/fd*
    アーカイブファイル伸長のための一時的ディレクトリ。
fd-unicd.tbl
    フロッピードライブの UNICODE 変換テーブル。 fd の起動ディレクトリにインストールされる。
fdrc
    MS-DOS 版での共通 fd 初期設定ファイル。 fd の起動ディレクトリに用意しておく。
$HOME\fd.rc
    MS-DOS 版での個人用の fd 初期設定ファイル。
$HOME\fd.hst
    MS-DOS 版でのコマンド履歴のセーブファイル。

制限事項
コマンドマクロの展開後のサイズは 1023 文字までに制限されています。 文字列の入力は、画面サイズにも依存しますが、 255 文字を越えては入力できません。 登録できるキー割当ては 256 個までです。 このうち、ユーザ定義マクロで割当てられるのは 64 個までです。 登録できるランチャは、アーカイブブラウザの登録を含めて 32 個までです。 登録できるアーカイブコマンドは、圧縮と伸長を一組として 16 組までです。 定義できる関数は 16 個までです。 定義できるエイリアスは 256 個までです。 これらの上限値には、最初から組込み定義されているものを含みます。 端末の種類によって、 一部のファンクションキーや特殊キーの入力ができないことがあります。 termcap(5) に登録されていない機能のデフォルトシーケンスは、 VT200 互換のシーケンスを採用していますが、 端末がこれに対応できていない場合は、 その機能を用いたキーの取得や画面制御ができません。

関連事項
sh(1), ls(1), rm(1), tar(1), compress(1), zcat(1), gzip(1), gunzip(1), lha(1), termcap(5)

バグ
アーカイブファイル内に ".." を含んだパス名で圧縮してある場合は、 アーカイブブラウザが正常に働きません。 アーカイブファイル内の symbolic リンクは個別に展開できません。 ユーザインタフェースが稚拙です。

著作権
Copyright (C) 1995-2001 by Takashi SHIRAI