カテゴリ: Linuxコマンド集 更新日: 2025/12/09

find -nameオプションの使い方を完全ガイド!初心者でもわかるファイル名での検索方法

find -nameオプション|ファイル名で検索する方法
find -nameオプション|ファイル名で検索する方法

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

生徒

「Linuxで特定のファイル名を指定して検索したいときは、どうすればいいですか?」

先生

「そんなときはfindコマンドの-nameオプションを使うと便利ですよ。」

生徒

「そのオプションって難しそうに聞こえますが、初心者でも使えますか?」

先生

「もちろんです!実際の使い方を一緒に見ていきましょう。」

1. find -nameオプションとは?

1. find -nameオプションとは?
1. find -nameオプションとは?

Linuxのfindコマンドは、ファイルやディレクトリを探すためのコマンドです。中でも-nameオプションは、ファイル名を指定して検索するための基本中の基本となる機能です。

たとえば「名前がmemo.txtというファイルを探したい」といったシンプルな目的にぴったりです。指定した名前と完全に一致するファイルだけを探してくれます。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

使い方はとてもシンプルです。検索を開始する場所(ディレクトリ)と、探したいファイル名を指定するだけです。

例として、現在のフォルダ(カレントディレクトリ)以下からmemo.txtを探すコマンドは以下の通りです。


find . -name "memo.txt"
./Documents/memo.txt

.は「今いる場所」を意味し、"memo.txt"は探したいファイル名を表します。結果として、見つかったファイルのパスが表示されます。

3. 大文字と小文字は区別される

3. 大文字と小文字は区別される
3. 大文字と小文字は区別される

-nameオプションでは、大文字と小文字が厳密に区別されるという点に注意が必要です。

たとえば、memo.txtMemo.txtは別のファイルとみなされ、後者は検索結果に出てきません。


find . -name "Memo.txt"
./Documents/Memo.txt

もし大文字と小文字を区別せずに検索したい場合は、-inameオプションを使いましょう。

4. ワイルドカード(アスタリスク)であいまい検索

4. ワイルドカード(アスタリスク)であいまい検索
4. ワイルドカード(アスタリスク)であいまい検索

-nameでは、ワイルドカード(*を使って部分一致での検索も可能です。*は「なんでもOK」という意味を持ちます。

たとえば、「.txtで終わるすべてのファイルを検索したい」ときは、以下のように記述します。


find . -name "*.txt"
./Documents/memo.txt
./Notes/todo.txt

"*.txt"とすることで、拡張子が.txtのすべてのファイルを見つけることができます。

5. ディレクトリだけを対象にしたいとき

5. ディレクトリだけを対象にしたいとき
5. ディレクトリだけを対象にしたいとき

-type dを組み合わせれば、ディレクトリ名だけを検索対象にすることも可能です。たとえば「名前がlogというディレクトリ」を探すには次のようにします。


find . -type d -name "log"
./var/log

-type dを使うことで、ファイルとディレクトリを区別して探すことができるようになります。

6. サブディレクトリも自動で検索

6. サブディレクトリも自動で検索
6. サブディレクトリも自動で検索

findコマンドは、指定した場所の中にあるすべてのサブディレクトリも自動的に検索してくれます。たとえば、数十個のフォルダの中に同じ名前のファイルがあっても、一気に調べてくれます。

初心者にとっては、フォルダをひとつずつ開いて探すより圧倒的に効率的です。

7. ファイルが見つからなかった場合

7. ファイルが見つからなかった場合
7. ファイルが見つからなかった場合

もし指定したファイルが見つからない場合、findは何も表示しません。これは「該当なし」という意味です。


find . -name "notfound.txt"
(何も表示されない)

このときは、ファイル名のスペルや大文字・小文字を間違えていないか確認してみましょう。

8. 他の検索コマンドとの違い

8. 他の検索コマンドとの違い
8. 他の検索コマンドとの違い

Linuxにはlslocateなどの検索に使えるコマンドがありますが、find-nameオプションを使うことでリアルタイムの検索ができるという大きな強みがあります。

locateは事前にデータベースを更新しておく必要があるのに対し、findは常に現在の状態を調べてくれるため、最新の情報を基にファイル名検索ができます。

9. エラー対策と注意点

9. エラー対策と注意点
9. エラー対策と注意点

アクセス権のないフォルダに入ろうとすると、「Permission denied(許可されていません)」というエラーが出ることがあります。その場合でも他のフォルダの検索は続行されます。


find / -name "memo.txt"
find: ‘/root’: Permission denied

気になる場合は、エラーを非表示にする方法や、ルート権限での検索もありますが、初心者のうちはホームディレクトリ~)での検索をおすすめします。

まとめ

まとめ
まとめ

ここまで、findコマンドの-nameオプションを中心に、Linuxでのファイル名による検索方法を詳しく見てきました。ファイル名だけを指定して検索できるこの機能は、初心者が最初に身につけるべき基本でありながら、実務でも非常に役に立つ重要な要素です。特定のファイルを探す場面は日常的に発生し、正しいファイル名を把握していないと作業が中断してしまうこともあります。そんな時に-nameを使った精確な検索操作が大きな助けとなり、目的のファイルにたどり着くまでの時間を大幅に短縮できます。

また、findコマンドはサブディレクトリを含めて自動で検索してくれるため、階層の深いフォルダ構造がある場合でも、一つ一つ開いて探す必要がなく、効率が飛躍的に向上します。特に開発環境やサーバ環境ではフォルダの入れ子構造が複雑化しがちですが、findを使いこなせば迷うことなく目的のファイルに到達できます。ワイルドカードを利用した部分一致検索も強力で、「memo」で始まるファイルだけ探す、「.txt」で終わるファイルだけ見つけたいといった柔軟な使い分けが可能になり、検索の幅が大きく広がります。

さらに、-typeと組み合わせることでファイル名検索の精度はさらに高まります。たとえば同じ名前のフォルダとファイルが混在していても、-type fで通常ファイルだけ、-type dでディレクトリだけを対象にできるため、より確実に目的のものを見つけられます。特に大規模なプロジェクトでは同じ単語が含まれるフォルダ名が複数存在することも多く、タイプ指定は混乱を防ぐ重要なポイントとなります。

一方、大文字・小文字を区別する点は初心者がつまずきやすい部分でもあります。同じ「memo.txt」でも「Memo.txt」が検索されない理由を理解しておくことで、検索結果に出ないときの原因に素早く気づけるようになります。区別したくない場合は-inameで対応できるため、覚えておくと便利です。

以下では、今回学んだ内容をより深く理解するために、find -nameを使った追加のサンプル操作を紹介します。

サンプル:特定ディレクトリ配下のログファイルのみを検索する

たとえば、ログファイルが増え続けて管理しづらくなってきた場合、「error」という文字を含むログファイルだけを見つけたいことがあります。その際には次のように検索できます。


find ./logs -name "*error*.log"
./logs/system_error.log
./logs/app_error_2024.log

このように、ワイルドカードを組み合わせることで、名前の一部からでも目的のファイルを探し出すことができます。さらに、見つけたファイルを移動したり整理したりする際にも便利です。 次の例では、検索結果に含まれたログファイルをまとめてbackupフォルダに移動しています。


find ./logs -name "*error*.log" -exec mv {} ./backup/ \;

このように、findは検索だけでなく、その後のファイル操作にも応用できる点が大きな魅力です。慣れれば、検索と整理を同時に行える非常に強力なツールになります。 初心者のうちはまず-nameとワイルドカードに慣れ、徐々に条件を追加しながら応用範囲を広げていくとよいでしょう。そして、検索対象が見つからない場合には、スペルや大文字・小文字の確認を行う癖をつけておくと、原因を素早く特定できます。

サンプル:特定の拡張子を持つ設定ファイルを検索

設定ファイル(.conf)が散らばっている環境で一覧を確認したい場合にも、-nameは役立ちます。


find /etc -name "*.conf"
./etc/httpd/httpd.conf
./etc/nginx/nginx.conf
./etc/systemd/system.conf

こうした検索はシステム管理では頻繁に行われ、設定の見直しやエラー調査の際に役立ちます。name検索の基礎が身についていれば複雑な環境でも落ち着いて調査が進められます。

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

生徒

「find -nameって思っていたより簡単ですね!検索がすごく楽になります。」

先生

「シンプルだけどとても強力なオプションですよ。特にワイルドカードを使うと検索の幅が一気に広がります。」

生徒

「同じ名前のフォルダがあるとややこしいのかと思いましたが、-type dを使えば安心ですね。」

先生

「その通りです。状況に応じて-nameと-typeを組み合わせると無駄な検索を減らせますよ。」

生徒

「大文字・小文字の違いも気をつけます。もし間違えても-inameで柔軟に検索できるのが助かりますね。」

先生

「その調子です。findを使いこなすとLinuxの操作がぐっと楽になりますから、ぜひいろいろ試してください。」

生徒

「はい、今日の内容を実際の環境で使ってみます!」

関連記事:
カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
grep -hオプションの使い方|ファイル名を表示せずに一致行だけを出力する方法
New2
ファイル・ディレクトリ操作
find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索
New3
ファイル・ディレクトリ操作
Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
New4
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本