カテゴリ: Linuxコマンド集 更新日: 2026/03/26

grep -lオプションの使い方を完全解説!一致したファイル名だけを表示する方法

grep -lオプション|一致したファイル名だけを表示する
grep -lオプション|一致したファイル名だけを表示する

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

生徒

「grepコマンドって検索に使うって聞いたんですけど、たくさんのファイルの中から、どのファイルに一致した内容があるかだけ知りたいときってどうすればいいですか?」

先生

「その場合は、grepの-l(エル)オプションを使うと便利ですよ。『一致したファイル名』だけを表示してくれます。」

生徒

「検索にヒットした中身じゃなくて、ファイル名だけが欲しいときに使えるんですね?」

先生

「その通りです!では、grep -lオプションの基本的な使い方を見ていきましょう。」

1. grep -lオプションとは?

1. grep -lオプションとは?
1. grep -lオプションとは?

grep(グレップ)とは、Linuxで「文字列を検索するためのコマンド」です。通常は、検索に一致した行の中身を表示しますが、-lオプションをつけることで、「検索に一致したファイル名だけ」を表示できます。

この-lは「list(リスト)」の略と考えると覚えやすいです。つまり「一致したファイルのリストを表示する」オプションです。

2. grep -lの基本構文

2. grep -lの基本構文
2. grep -lの基本構文

使い方はとてもシンプルです。以下の構文になります。


grep -l 検索文字列 対象ファイル

例えば、現在のディレクトリ内にある.txtファイルの中から「apple」という文字列を含むファイル名だけを表示したい場合、次のように実行します。


grep -l apple *.txt
fruits.txt
menu.txt

この例では、「apple」という単語が含まれているファイルがfruits.txtmenu.txtだったということが分かります。

3. grep -lと通常のgrepの違い

3. grep -lと通常のgrepの違い
3. grep -lと通常のgrepの違い

通常のgrepコマンドは、一致した行そのものを表示します。


grep apple *.txt
fruits.txt:apple
menu.txt:green apple juice

それに対して、-lオプションをつけると、行の中身ではなくファイル名だけを表示してくれるのが特徴です。

4. サブディレクトリも含めて検索するには?

4. サブディレクトリも含めて検索するには?
4. サブディレクトリも含めて検索するには?

もし、サブディレクトリ(下の階層)にあるファイルも含めて検索したい場合は、grep -rl-r(再帰的)のオプションを組み合わせて使います。


grep -rl apple .
./data/fruits.txt
./memo/menu.txt

このように、「.」は現在のディレクトリを意味し、-rでその中のすべてのフォルダやファイルを対象に検索します。

5. -lのあとに注意すべき点

5. -lのあとに注意すべき点
5. -lのあとに注意すべき点

grepの-lは、一致したらその時点でそのファイルの表示を終了するため、大量の一致がある場合でも高速に処理されます。

また、表示されるのは一致があったファイルのみなので、「一致しなかったファイル」は表示されません。すべてのファイルの確認が必要な場合は、-L(大文字のエル)オプションを使うと、一致しなかったファイル名を表示することもできます。

6. よく使うオプションの組み合わせ例

6. よく使うオプションの組み合わせ例
6. よく使うオプションの組み合わせ例

grepコマンドは他のオプションと組み合わせて使うことで、もっと便利になります。ここでは、-lと相性の良い組み合わせを紹介します。

-l と -i(大文字小文字を区別しない)


grep -il apple *.txt
menu.txt
apple_recipe.txt

-l と -r(再帰的に検索)


grep -rl banana ./recipes
./recipes/fruits.txt
./recipes/smoothie.txt

-l と --include(特定の拡張子だけ検索)


grep -rl --include="*.log" error .
./logs/server.log
./logs/app.log

7. ファイルの中身を見ずに絞り込みたいときに便利

7. ファイルの中身を見ずに絞り込みたいときに便利
7. ファイルの中身を見ずに絞り込みたいときに便利

grep -lは、検索キーワードが「どのファイルに含まれているか」だけを把握したいときに最適です。中身の確認はあとで行いたいけど、とにかく対象のファイル名を特定したいときに便利です。

例えば、ログファイルの中から「ERROR」が含まれているログだけを抽出したいときにも使えます。

8. grep -lはスクリプトにも便利

8. grep -lはスクリプトにも便利
8. grep -lはスクリプトにも便利

grep -lは、シェルスクリプトや自動処理にもよく使われます。なぜなら、ファイル名だけを出力してくれるので、次の処理につなげやすいからです。

例えば、次のようにxargsコマンドと組み合わせると、一致したファイルを一括でコピーしたり削除したりできます。


grep -l "secret" *.txt | xargs cp -t ./secret_files

このコマンドは、「secret」という文字列が含まれているファイルだけをsecret_filesフォルダにコピーします。

まとめ

まとめ
まとめ

grepコマンドのlオプションは、検索結果として一致した行の内容ではなく、対象となるファイル名だけを一覧で取得したい場合に非常に役立つ機能です。Linux環境でのログ解析や設定ファイルの確認、複数ファイルにまたがるキーワード検索など、実務に直結する場面で頻繁に活用されます。特にファイル数が多い環境では、内容を逐一確認するよりも、まず該当ファイルを絞り込むことが重要であり、その第一段階としてgrepのlオプションは非常に効率的です。

通常のgrepでは一致した行が表示されるため、出力が多くなりすぎてしまうケースがありますが、lオプションを使えば必要最小限の情報だけを取得できます。この特徴により、検索処理の高速化にもつながり、大規模なディレクトリ構成でもストレスなく操作できます。また、rオプションと組み合わせることで、サブディレクトリを含めた再帰的検索が可能となり、プロジェクト全体の中から特定の文字列を含むファイルを一括で見つけることができます。

さらに、iオプションと組み合わせることで大文字小文字を区別せずに検索できるため、柔軟な検索が可能になります。includeオプションを活用すれば、特定の拡張子に限定した検索も実現でき、ログファイルや設定ファイルだけを対象にするなど、より実践的な使い方が広がります。このようにgrepのlオプションは単体でも便利ですが、他のオプションと組み合わせることでその真価を発揮します。

実際の運用では、検索結果を次の処理につなげるケースも多くあります。例えばxargsと組み合わせることで、検索に一致したファイルを一括コピーや削除することが可能です。これにより、手作業でファイルを選択する手間を省き、作業効率を大幅に向上させることができます。シェルスクリプトの中で利用する場合にも、ファイル名のみが出力される特性は非常に扱いやすく、自動化処理の構築において重要な役割を果たします。

サンプルプログラム

基本的な使い方と応用例をまとめて確認してみましょう。


grep -l error *.log
server.log
app.log

grep -rl warning .
./logs/system.log
./backup/old.log

grep -il config *.txt
config.txt
system_config.txt

grep -l "secret" *.txt | xargs cp -t ./backup_files
backup complete

このように、grepのlオプションは検索対象のファイルを素早く特定するための強力な手段です。Linux初心者から実務で活用するエンジニアまで、幅広いユーザーにとって必須ともいえるコマンドの一つです。ファイル検索の効率化や作業の自動化を進めるうえで、ぜひ積極的に活用していきましょう。

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

生徒

grepのlオプションって、検索結果の中身じゃなくてファイル名だけを表示するためのものなんですよね。

先生

その通りです。特にファイル数が多いときには、まず対象ファイルを特定することが重要になります。

生徒

通常のgrepだと行の内容がたくさん出てしまって見づらいことがありますけど、それを防げるのが便利ですね。

先生

はい。さらにrオプションと組み合わせれば、ディレクトリ全体から効率よく検索できます。

生徒

iオプションやincludeオプションも一緒に使うと、もっと細かく条件を指定できるんですね。

先生

そうです。実務では複数のオプションを組み合わせて使うことが多いので、今回の内容はとても重要です。

生徒

xargsと組み合わせて次の処理につなげる使い方も、かなり実用的だと感じました。

先生

その理解はとても良いですね。grepのlオプションは、検索だけで終わらず、その後の処理を効率化するための起点としても活用できます。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
テキスト処理とフィルタ
tacコマンドの基本!ファイル内容を逆順に表示する方法
New4
テキスト・データ処理
awk -fオプションの使い方を完全ガイド!初心者でもわかるLinuxテキスト処理の基本
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門