Linuxには,「複数のファイルを指定して処理する機能」を備えるコマンドが多数用意されています。例えばファイルのコピーを行うcpコマンドでは,コピー元に複数のファイルを指定し,一括して目的のディレクトリ内にそれらのコピーを作成できます。しかし,多数のファイルを指定する場合は,それらすべてのファイル名を入力しなければならず,面倒です。
複数のファイルを指定するのに役立つのが,ワイルドカードです。ワイルドカードには,トランプでいうジョーカーのような役割があります。つまり,任意の文字や文字列を表せる記号です。例えば,「ある拡張子を含んだファイルをすべて指定する」といったことが簡単にできます。
では,Linuxで利用できるワイルドカードを習得しましょう。
任意の1文字を表す「?」
任意の1文字を表せるワイルドカードが「?」です。「file?」と指定すると,「file1」や「fileA」など,「?」の位置に任意の1文字が入るファイルを指定できます。「?」を複数利用することもできます。例えば,Fileの後に任意の3文字が付くファイルを削除したい場合は,
|
と入力します。
ただし,ドット・ファイルに利用される先頭の「.」記号は,?で表せません。例えば,「?file」としても「.file」は含まれません。
任意の文字列を表す「*」
任意の0文字以上の文字列を表せるワイルドカードが「*」です。「file*」と指定すると,「fileA」や「filename」などのファイル名を表せます。また,「file*」の場合は,「file」といった全く文字が付かない場合も表されます。
例えば,png拡張子が付いたファイルをphotoディレクトリに移動したい場合は,
|
と指定します。また,「*」のみを指定するとすべてのファイルが指定されます。
ただし,「*」はファイルの先頭に「.」があるドット・ファイルを表せません。ドット・ファイルを指定したい場合には,「.*」と指定します。
指定文字のいずれかを表す「[...]」
指定した文字のいずれかを含んだファイルを表したい場合には「[...]」を利用します。例えば,「File」または「file」を削除したい場合は,
|
と入力します。
また,マイナス(-)記号で文字の範囲を利用することも可能です。例えば,数字1文字を表すには「[0-9]」とします。同様にアルファベットなら「[a-zA-Z]」と指定します。
指定文字列のいずれかを表す「{...}」
指定した文字列のいずれかを含んだファイルを表したい場合には,「{...}」を利用します。文字列の指定には,文字列の間をカンマ(,)で区切ります。例えば,jpgまたはgifを拡張子に含んだファイルをgrpディレクトリにコピーしたい場合は,
|
と実行します。
また,指定したい文字列に「{」,「}」,「,」の記号を含む場合は,それぞれの記号の前に「\」を付けます。a,bまたはcdを含むファイルを削除したいなら,
|
と入力します。