``ワイルドカード'' や ``メタキャラクタ'' とは任意の文字列を指定するための特殊な文字のことです. ワイルドカードやメタキャラクタを利用することによって, 複数のファイルを効率的に操作できます. 次にそれぞれの使用例を示します.
`*
' (アスタリスク)
は0文字以上の任意の文字列を表すワイルドカードです.
例えば,
`*.tex
' はファイル名が
`.tex' で終るすべてのファイルを意味します.
シェルは `*
' を0文字の文字列としても解釈します.
そのため,`abc*
' と入力すると,
`abc' という名前のファイルも操作の対象に含まれます.
ただし,先頭に `*
' を指定した場合でも,
ファイル名が `.
' ではじまるファイルは含まれません.
% ls -aF <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 -aF <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' のどちらかを表します.
`~
' は,ホームディレクトリを表します.
`~
ログイン名' とすると,
そのログイン名を持つユーザのホームディレクトリを表しますが,
ログイン名を省略すると自分のホームディレクトリを表します.