-- bashその3 ファイル名の展開 --
bashはコマンドの引数として与えられる文字列に*や?などを使うとファイル名に展開されます。
echo コマンドを使って確認してみると
echo *
でカレントディレクトリ下にあるファイルが表示されます。
ファイルがたくさん存在する/etcにカレントディレクトリを映して実験してみます。
echo *
を実行すると/etc/の下にあるすべてのファイルが表示されます。
echo a*
を実行するとaが先頭につくファイルだけが表示されます。
このことから、* はすべての文字に一致するという意味合いがあります。
次に echo [ab]* を実行すると
先頭がa,bで始まるファイルが表示されます。なので[ ]の中の文字に一致するという意味になります。
echo [abcd]????? を実行してみます。
するとa,b,c,dのいずれかから始まる6文字のファイル名のみが表示されることから?は任意の1文字として扱われます。