Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

ワイルドカード

2015/05/20 08:00

 UNIXのコマンドは、コマンド名、オプション、引数という形式で入力します。

$ mkdir -m 755 dir01 dir02 dir03 

 オプションは、コマンドの基本機能に付ける付加機能を指定するものです。各コマンドによって、指定できるオプションは決まっていて、指定できないコマンドや、複数指定できるコマンドもあります。通常は、「-」(ハイフン)に続く1文字の英数字で指定します。

HINT!

 Linuxでは、オプションを2個のハイフンに続けて英単語を入力できるものがあります。この例では、「--mode=755」と指定しても同じ結果となります

 引数は、コマンドの実行対象を指定するもので、コマンドによっては、指定できないものや、複数指定できるものもあります。

 さて、あるコマンドの引数として、10個のファイル名を指定したい場合を考えてみてください。10個のファイル名をひとつずつ、すべて手入力していたのでは、とても非効率的ですね。この時、対象とするすべてのファイル名が一定のルールにしたがっていて、逆にそれ以外のファイル名が、そのルールにしたがっていない場合には、ワイルドカードを有効に使用することができます。例えば、対象とする10個のファイル名がすべて「fl」で始まっていて、それ以外のファイル名には「fl」で始まるものはないとした場合、「fl*」という表記で、10個すべてのファイルを指定することができます。

 これは、「*」(アスタリスク)が0文字以上の任意の文字列を表すからです。0文字以上というのは、何もなくてもよいということで、「fl*」は「fl」も含むということです。アスタリスクの他に、任意の一文字を示す「?」(クエスチョンマーク)を使用することもでき、アスタリスクやクエスチョンマークを「ワイルドカード」といいます。

 また、「[ ]」内にいくつかの文字を指定すると、その中の任意の1文字を表します。例えば「[ABC]」とすると、「A」か「B」か「C」のうちのどれか1文字という指定となります。

ワイルドカードの使用例
$ ls 
fa001 fl001 fl003 fl005 fl007 fl009 fx001 x001
fa002 fl002 fl004 fl006 fl008 fl010 fx002 x002
すべてのファイル
$ ls fa*
fa001 fa002
ファイル名が「fa」から始まるすべてのファイル
$ ls f?00*
fa001 fa002 fl001 fl002 fl003 fl004 fl005 fl006
fl007 fl008 fl009 fx001 fx002
ファイル名が「f」から始まり、3文字目と4文字目が「0」のすべてのファイル
$ ls f[ax]*
fa001 fa002 fx001 fx002
ファイル名が「f」から始まり、2文字目が「a」または「x」のすべてのファイル

UNIXコマンド辞典トップページに戻る

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5