``ワイルドカード''や ``メタキャラクタ''とは任意の文字列を指定するための特殊な文字のことです. ワイルドカードやメタキャラクタを利用することによって,複数のファイルを効率的に操作できます. 次にそれぞれの使用例を示します.
`*' (アスタリスク) は0文字以上の任意の文字列を表すワイルドカードです. 例えば,`*.tex'はファイル名が `.tex'で終るすべてのファイルを意味します. シェルは`*'を0文字の文字列としても解釈します. そのため,`abc*'と入力すると,`abc'という名前のファイルも操作の対象に含まれます. ただし,先頭に`*'を指定した場合でも,ファイル名が`.'ではじまるファイルは含まれません.
% ls -a <ENTER> ./ .mathmatics economics.tex micro.c ../ .statistics macro.tex micro.tex % ls *.tex <ENTER> economics.tex macro.tex micro.tex % ls m* <ENTER> macro.tex micro.c micro.tex % rm * <ENTER> ← rmコマンドでファイルを削除する % ls -a <ENTER> ./ ../ .mathmatics .statistics % _
`?' (クエスチョンマーク) は任意の1文字を表すワイルドカードです. この1文字はアルファベットでも数字でもかまいませんが,`*'と異なり必ず1文字存在していなければ一致しません. 例えば,`m?cro.tex' という指定には,`mcro.tex'は含まれません.
% ls <ENTER> economics.tex macro.tex micro.c micro.tex mcro.tex % ls m?cro.tex <ENTER> macro.tex micro.tex % _
`[ ]'は文字候補を指定するメタキャラクタです. `[ ]'の中に文字を列挙すると,その中のものを当てはまる文字の候補として表せます. 例えば,`[Bbq]'は,`B'か`b'か`q'のうちの1文字を表します. `-'を用いて範囲を表せます. `[a-z]'は小文字アルファベット1文字,`[0-9]'は数字1文字を表します. なお,候補の文字列の前に`^'を用いると,`[ ]'の中に列挙されていない文字を表します. 例えば`[^tex]'は,`t'か`e'か`x'以外の文字を表します.
`[ ]'の場合は1文字でしたが,`{ }' の中にカンマ(`,') で区切って文字列を列挙すると,その文字列を候補として扱えます. 例えば,`{aux,log}'は,`aux'か `log'のどちらかを表します.
`~'は,ホームディレクトリを表します.`~ログイン名'とすると,そのログイン名を持つユーザのホームディレクトリを表しますが,ログイン名を省略すると自分のホームディレクトリを表します.