カテゴリ: Linux 更新日: 2026/04/04

Linuxの「?」とは?1文字ワイルドカードを初心者向けに徹底解説|bash・zsh・シェルで使えるパターンマッチの基本

Linuxの「?」とは?1文字ワイルドカード
Linuxの「?」とは?1文字ワイルドカード

先生と生徒の会話形式で理解しよう

生徒

「Linuxのコマンドで使う『?』って何ですか?見たことあるんですけど意味がわからなくて…」

先生

「『?』はワイルドカードと呼ばれていて、ファイル名の一部をあいまいに指定するときに使う記号ですよ。」

生徒

「あいまいにってどういうことですか?例えばファイル名がわからないときですか?」

先生

「そうですね。特に『?』は1文字だけを表すので、似た名前のファイルをまとめて扱うときに便利です。実際のコマンドと一緒に見ていきましょう。」

1. Linuxの「?」とは?

1. Linuxの「?」とは?
1. Linuxの「?」とは?

Linuxで使われる「?」は、ワイルドカードの一種です。ワイルドカードとは、ファイル名やディレクトリ名を指定するときに、文字の一部を省略して検索や操作ができる便利な記号のことです。

「?」は1文字だけを表すワイルドカードで、正式にはワイルドカード(ワイルドカード)やパターンマッチ(パターンマッチ)と呼ばれます。

たとえば、ファイル名の一部がわからないときや、似た名前のファイルをまとめて扱いたいときに役立ちます。Linuxのシェルであるbashやzshでよく使われる基本機能です。

2. 「?」の基本的な意味と動作

2. 「?」の基本的な意味と動作
2. 「?」の基本的な意味と動作

「?」は任意の1文字を意味します。つまり、その位置にどんな1文字が入っても一致するという仕組みです。

例えば、以下のようなファイルがあるとします。


ls
file1.txt  file2.txt  fileA.txt  test.txt

このとき、「file?.txt」と指定すると、1文字分だけ違うファイルをまとめて指定できます。


ls file?.txt
file1.txt  file2.txt  fileA.txt

このように「?」は1文字分だけ一致するため、「file10.txt」のような2文字になるものは対象外になります。

3. 「*」との違いを理解しよう

3. 「*」との違いを理解しよう
3. 「*」との違いを理解しよう

初心者がよく混乱するのが「*」との違いです。「*」もワイルドカードですが、意味が異なります。

「*」は0文字以上の任意の文字列を表しますが、「?」は必ず1文字だけです。


ls file*.txt
file1.txt  file2.txt  fileA.txt

一見似ていますが、「file?.txt」は1文字限定、「file*.txt」は何文字でも一致するという違いがあります。

この違いを理解すると、より正確にファイル操作ができるようになります。

4. 実際に使ってみよう

4. 実際に使ってみよう
4. 実際に使ってみよう

ここでは実際に「?」を使ったコマンド例を紹介します。初心者でもわかるようにシンプルな例にしています。

例1 同じ形式のファイルを表示する


ls data?.csv
data1.csv  data2.csv  data3.csv

例2 特定の桁数のファイルを探す


ls report??.txt
report01.txt  report02.txt

このように「??」と2つ並べると、2文字分を意味します。

例3 コピーコマンドで使う


cp img?.png backup/
img1.png  img2.png が backup フォルダにコピーされる

5. bashやzshでの使い方

5. bashやzshでの使い方
5. bashやzshでの使い方

Linuxのシェルにはbashやzshがありますが、「?」の基本的な動作はどちらでも同じです。

シェル(シェル)とは、コマンドを入力して操作するためのプログラムのことです。

bash(バッシュ)やzsh(ズィーシェル)では、コマンドを実行する前にワイルドカードが展開されます。これをグロブ展開といいます。

つまり、「?」はコマンドが実行される前に、実際のファイル名に置き換えられて処理されます。

6. よくある使い方と便利なパターン

6. よくある使い方と便利なパターン
6. よくある使い方と便利なパターン

「?」は単体でも便利ですが、他の記号と組み合わせるとさらに強力になります。

例 ファイルの先頭と末尾を指定する


ls a?c.txt
abc.txt  axc.txt

例 複数のパターンをまとめて扱う


ls test?.log
test1.log  test2.log  testA.log

このようにパターンマッチを活用すると、手作業でファイルを指定する手間が大きく減ります。

7. 注意点とよくあるミス

7. 注意点とよくあるミス
7. 注意点とよくあるミス

初心者がよくやるミスとして、「?」は1文字だけという点を忘れてしまうことがあります。

例えば、2文字の部分を「?」1つで指定しようとしても一致しません。

また、該当するファイルが存在しない場合は、そのまま文字列として扱われることもあります。


ls nofile?.txt
ls: cannot access 'nofile?.txt': No such file or directory

このようなエラーが出た場合は、ファイル名やパターンを見直すことが大切です。

8. 「?」が活躍する場面

8. 「?」が活躍する場面
8. 「?」が活躍する場面

「?」は特にログファイルの管理や連番ファイルの操作で活躍します。

例えば、日付ごとに作成されたファイルや番号付きファイルを扱うときに便利です。

Linuxコマンドを使いこなす上で、ワイルドカードは必須の知識です。中でも「?」はシンプルで覚えやすいため、最初に身につけておきたい基本テクニックです。

まとめ

まとめ
まとめ

Linuxにおけるワイルドカードの中でも「?」は、ファイル操作を効率化するための非常に重要な基本機能です。特にbashやzshといったシェル環境では、コマンド実行前にグロブ展開が行われるため、「?」を使うことでファイル名を一つ一つ指定する手間を大幅に削減できます。 「?」は任意の1文字に一致するというシンプルなルールを持っていますが、この仕組みを正しく理解することで、Linuxコマンドの操作精度が格段に向上します。例えば、ファイル名の一部だけが異なる複数のファイルを扱う場合、「?」を使えば簡単にまとめて処理できます。 また、「??」のように複数並べることで、特定の文字数に限定した検索や操作も可能になります。これにより、連番ファイルや一定の形式を持つログファイルの管理が非常に効率的になります。 一方で、「*」との違いを理解することも重要です。「*」は任意の文字列に一致するのに対し、「?」は必ず1文字だけに一致します。この違いを意識することで、より正確なパターンマッチが可能になります。 実務においては、ログ管理、バックアップ処理、データ整理など、さまざまな場面で「?」が活躍します。特に大量のファイルを扱う環境では、ワイルドカードの活用が作業効率に大きな差を生みます。 さらに、Linux初心者にとっても「?」は理解しやすく、最初に習得すべき基本スキルの一つです。コマンドライン操作に慣れるためにも、実際に手を動かして試してみることが重要です。 以下に、復習として基本的な使い方を整理します。

基本の使い方まとめ

「?」は1文字を表すワイルドカードとして、ファイル検索や操作に活用されます。bashやzshでの標準的な機能であり、特別な設定なしで利用できます。


ls file?.txt
file1.txt  file2.txt  fileA.txt

このように、1文字だけ異なるファイルをまとめて取得できます。2文字の場合は「??」と記述します。


ls report??.txt
report01.txt  report02.txt

実務で役立つパターン

実際の業務では、ログファイルやデータファイルなど、一定の命名規則を持つファイルが多く存在します。「?」を使うことで、こうしたファイルを効率的に扱うことができます。


cp log?.txt backup/
mv data??.csv archive/

このようにコピーや移動といった基本操作でもワイルドカードは活用できます。Linuxコマンドの効率化に直結するため、積極的に使いこなすことが重要です。

理解を深めるポイント

「?」はシンプルな機能ですが、以下のポイントを押さえることでより実践的に使えるようになります。 一つ目は、必ず1文字に一致するという点です。二つ目は、シェルによって事前に展開されるという仕組みです。三つ目は、「*」との違いを明確に理解することです。 これらを意識することで、Linuxコマンドの理解が深まり、より高度な操作にも応用できるようになります。

先生と生徒の振り返り会話

生徒

Linuxの「?」って最初はよくわからなかったんですけど、1文字だけを表すって覚えるとすごくシンプルですね。

先生

その通りです。ワイルドカードの中でも「?」は基本中の基本なので、しっかり理解しておくと他のコマンド操作にも応用できます。

生徒

「*」との違いも最初は混乱しましたが、「?」は1文字、「*」は何文字でもという違いがわかると使い分けできそうです。

先生

いい理解ですね。特にファイル数が多い環境では、この違いが作業効率に大きく影響します。

生徒

実際にコマンドで試してみると、まとめてファイルを操作できて便利だと感じました。ログファイルの整理にも使えそうです。

先生

その気付きはとても重要です。Linuxでは繰り返し作業を効率化することが大切なので、ワイルドカードは必須のスキルになります。

生徒

これからはファイル操作のときに積極的に使ってみます。コマンドライン操作にも少し自信がつきました。

先生

とても良いですね。基本をしっかり身につけることで、Linuxの理解はどんどん深まっていきます。引き続き実践しながら覚えていきましょう。

関連記事:
カテゴリの一覧へ
新着記事
New1
Linux
Linuxの「?」とは?1文字ワイルドカードを初心者向けに徹底解説|bash・zsh・シェルで使えるパターンマッチの基本
新規投稿
New2
基本情報技術者試験
NTPとは?初心者でもわかる時刻同期の仕組みとネットワーク時刻プロトコルの基本
更新記事
New3
基本情報技術者試験
SMTPとは?初心者でもわかるメール送信の仕組みとプロトコルをやさしく解説!
更新記事
New4
Linux
Linuxの「>>」とは?追記リダイレクトの仕組みを初心者向けにわかりやすく解説【bash・zsh・シェルスクリプト入門】
新規投稿
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
NIC
317
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.3
Java&Spring記事人気No3
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.4
Java&Spring記事人気No4
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.5
Java&Spring記事人気No5
基本情報技術者試験
CGI
127
CGIとは?初心者でもわかるWebとプログラムのつながりを解説!
No.6
Java&Spring記事人気No6
基本情報技術者試験
IMAP
118
IMAPとは?初心者でもわかるメール受信プロトコルの仕組みと使い方
No.7
Java&Spring記事人気No7
基本情報技術者試験
パケットとは?初心者にもわかりやすくネットワークの仕組みをやさしく解説!
No.8
Java&Spring記事人気No8
基本情報技術者試験
IPv4
113
IPv4とは?初心者でもわかるIPアドレスの基本と通信のルール