このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linux基礎:メタキャラクタ

メタキャラクタ
Linux のシェルには、入力した文字を単なる文字列ではなく、特別な意味を持つ記号として解釈するものがあります。これを メタキャラクタ と呼びます。メタキャラクタを使うことで、複数のファイルやディレクトリを簡単に指定でき、効率的な操作が可能になります。
ここでは、Rocky Linux を環境として説明します。練習用のファイルを 1つのメタキャラクタを使ったコマンドで複数作成する方法を取り入れ、実際の出力例を交えて詳しく解説します。

1.メタキャラクタの基本
1.1. メタキャラクタの種類
メタキャラクタの主な種類と意味は以下の通りです。
| メタキャラクタ | 説明 | 使用例 |
|---|---|---|
| * | 0文字以上の任意の文字列に一致 | ls *.txt |
| ? | 任意の1文字に一致 | ls ?.txt |
| [ ] | 角括弧内の任意の1文字に一致 | ls [ab]*.txt |
| \ | メタキャラクタを通常の文字として扱う(エスケープ) | ls file\*name.txt |
1.2. 練習用ファイルの作成
学習のためのファイルを準備します。ここでは touch コマンドと 波括弧展開 { } というメタキャラクタを組み合わせ、一度に複数のファイルを作成します。
[user@rocky9 ~]$ mkdir meta_practice
[user@rocky9 ~]$ cd meta_practice
[user@rocky9 meta_practice]$ touch {1..5}.txt {a..c}{1..5}.txtこのコマンドは以下のように展開されます。
{1..5}.txt→1.txt 2.txt 3.txt 4.txt 5.txt{a..c}{1..5}.txt→a1.txt … a5.txt, b1.txt … b5.txt, c1.txt … c5.txt
作成されたファイルを確認します。
[user@rocky9 meta_practice]$ ls
1.txt 3.txt 5.txt a2.txt a4.txt b1.txt b3.txt b5.txt c2.txt c4.txt
2.txt 4.txt a1.txt a3.txt a5.txt b2.txt b4.txt c1.txt c3.txt c5.txtたった1行で20個の練習用ファイルが準備できました。
2.メタキャラクタの使い方
2.1. * の利用
* は「0文字以上の任意の文字列」に一致します。
[user@rocky9 meta_practice]$ ls *.txt
1.txt 3.txt 5.txt a2.txt a4.txt b1.txt b3.txt b5.txt c2.txt c4.txt
2.txt 4.txt a1.txt a3.txt a5.txt b2.txt b4.txt c1.txt c3.txt c5.txt拡張子「 .txt」 を持つすべてのファイルが対象となります。
2.2. ? の利用
? は「任意の1文字」に一致します。
[user@rocky9 meta_practice]$ ls ?.txt
1.txt 2.txt 3.txt 4.txt 5.txtここでは、ファイル名が1文字+拡張子「 .txt」 のものだけが抽出されています。
2.3. [ ] の利用
[ ] では、候補の中から1文字を選びます。
[user@rocky9 meta_practice]$ ls [ab]*.txt
a1.txt a2.txt a3.txt a4.txt a5.txt b1.txt b2.txt b3.txt b4.txt b5.txta または b で始まるファイルだけが表示されています。
さらに、範囲指定も可能です。
[user@rocky9 meta_practice]$ ls [3-5].txt
3.txt 4.txt 5.txt2.4. \ の利用
\ を付けると、メタキャラクタを通常の文字として扱えます。
[user@rocky9 meta_practice]$ touch file\*name.txt
[user@rocky9 meta_practice]$ ls file*
'file*name.txt'* がワイルドカードではなく、ファイル名の一部として扱われています。
3.実用的な組み合わせ
3.1. 数字を含むファイルを検索
[user@rocky9 meta_practice]$ ls *[13]*.txt
1.txt 3.txt a1.txt a3.txt b1.txt b3.txt c1.txt c3.txt[13] と指定することで、ファイル名に「1」または「3」を含むものだけを表示できます。
まとめ
本記事では、シェルで利用する メタキャラクタ について解説しました。
- *:0文字以上の任意の文字列
- ?:任意の1文字
- [ ]:候補や範囲を指定可能
- \:メタキャラクタを無効化
さらに、{ } を利用すれば効率的に練習用ファイルを作成できます。実際に試すことで、シェル操作の効率化を体験できるでしょう。
