🐧 Linux 総合学習プラットフォーム
基本操作・コマンド ・ 入門

まとめて指す:ワイルドカード(グロブ)

ファイルを1つずつ打たなくても、* や ? を使えば「条件に合うものすべて」をまとめて指せる。*.txt は「.txtで終わる全ファイル」、report-?.csv は「?が1文字」。展開するのはシェルなので、どのコマンドでも同じように効く。

ファイルが100個あっても、1つずつ名前を打つ必要はない。「条件に合うものぜんぶ」をまとめて指す記号がワイルドカード(グロブ)だ。

✳ 3つの基本記号

* は「任意の長さの文字列」、? は「任意の1文字」、[ ] は「かっこ内のどれか1文字」を表す。これらを使えば、まとまったファイルを一括で選べる。

ls *.txtmemo.txt ✓notes.txt ✓photo.jpg ✗todo.txt ✓run.sh ✗* =「何文字でもOK」.txt で終わるものだけ
ls *.log(.logで終わる全ファイル) / cp img_?.png backup/(img_1.png〜img_9.pngをコピー) / rm *~(末尾が~のバックアップを掃除)

🧠 展開しているのはシェル

大切なのは、* を解釈しているのはコマンドではなくシェルだという点。シェルが先に * を実際のファイル名の並びに展開し、コマンドはその結果を受け取る。だからどのコマンドでも同じように効く。

つまずきrm *.txt のように破壊的なコマンドとワイルドカードを組むときは要注意。まず ls *.txt で「何に当たるか」を目で確かめてから実行する。
💡
ポイント*.txt は隠しファイル(.で始まる)には当たらない。隠しも含めたいときは別途 .* を指定する。

この項目に出てくる用語

ワイルドカード(グロブ)わいるどかーど
ファイル名をまとめて指す記号。* は任意の文字列、? は任意の1文字、[ ] は文字集合。
シェルしぇる
コマンドを受け取ってOSに実行させる対話の窓口。bash が代表格。

関連コマンド

lscprm

▶ 学習アプリでこの続きを学ぶ・演習する