9.2 対話的なファイル名の補完

シェルからファイル名を記述しているとき、シェルが提供している対話的なファイル名の補完機能が幾つか利用できます。

再び説明はカレントディレクトリ以下のファイルの状況が以下のようだと仮定して行います。

cc2000(88)% ls
bb      cc      log     log2    sample
cc2000(89)%

「<Tab>」でファイルの名前を途中から補完する

例えば more sample とタイプしたくて、 more s までタイプしたとします。
この状況で <Tab> キーを一度押せば more sample と、シェルの方で勝手にタイプしてくれて、 sample から一つ離れた位置にカーソルが移動します。
そこで <Return> を押せば良いというわけです。

つまりシェルは more s とタイプされた段階で、 s に続くファイル名としてはこの状況では sample しか無いよ、と気を利かせてくれているのです。

今度は more log2 とタイプしたくて、 more l までタイプしたとします。
この状況で <Tab> キーを一度押せば more log と、シェルの方で勝手にタイプしてくれて、 log に続く位置にカーソルが移動します。(ベルが一度鳴るかもしれません。)

今度はシェルは more l とタイプされた段階で、 l に続くファイル名としてはこの状況では log と log2 しか無い事が判ります。
だからとにかく一致している途中までタイプしてくれているのです。
そこで残り不足している 2 をタイプして、 <Return> を押せば良いというわけです。

「C-d」でファイル名の一覧を表示する

<Tab> による補完を行って、カーソルがファイル名の記述のすぐとなりに来て(ベルが鳴る)時は、まだ残りがあるかもしれないよ、という意味でした。
この段階で、では一体どのような名前のファイルが可能性として残っているのかを確認するには C-d キーを押します。
そうすれば以下のように、まだ可能性のあるファイル名の一覧を挙げてくれます。

cc2000(86)% more log   ...ここで空白などあけずに<Control>-d
log   log2
cc2000(86)% more log

こうしてファイル名が長ったらしい場合でも、 <Tab> キーと C-d を組み合わせて行けば、少ないタイピングで間違いなくそのファイルを指定することができるというわけです。


Yutaka Yasuda (yasuda@bakkers.gr.jp)