「目的のファイルが見つからない」「サーバ内でどこにファイルがあるかすぐに知りたい」——Linuxを使っていると、こうした悩みに直面する場面は少なくありません。とくに階層構造が深いディレクトリでのファイル検索や、部分一致での絞り込みには、ちょっとしたコマンドの知識が求められます。この記事では、Linuxでのファイル検索方法を、初心者でも使える基本から応用的なテクニックまで、再帰検索やgrepとの組み合わせも含めて徹底解説します。
Linuxのファイル検索とは?基本をおさらい
Linuxにおけるファイル検索とは、コマンドライン上でファイル名やファイルの中身を条件に合った形で探し出す作業のことを指します。GUIがない環境やサーバ管理では必須のスキルです。
よく使われる検索系コマンド一覧
find
:ファイル名・属性で検索できる万能コマンドgrep
:ファイルの中身から文字列検索locate
:あらかじめインデックス化されたファイル情報から高速検索which
/whereis
:コマンドの場所を検索する
find
コマンドの基本的な使い方
find
は最も使用頻度が高く、柔軟性が高いファイル検索コマンドです。
find [検索開始ディレクトリ] [検索条件] [実行アクション]
例:find / -name "test.txt"
→ ルートディレクトリ以下すべての場所からtest.txtを探す
サブディレクトリまで含めた再帰検索の方法
Linuxのファイル検索では、サブディレクトリも含めた“再帰的検索”が重要です。find
コマンドはデフォルトで再帰検索となっています。
例:サブディレクトリを含めて拡張子で検索
find /home/user -type f -name "*.sh"
→ /home/user以下の全サブディレクトリも含め、拡張子.shのファイルを検索
全ディレクトリからファイルを探すには
すべてのディレクトリを対象に検索したい場合、検索の起点をルート(/
)にします。
sudo find / -type f -name "filename.txt"
※ sudo
をつけることで、権限が必要な領域も含めて検索が可能です。
ファイル名の部分一致で検索する方法
完全一致だけでなく、ファイル名の一部だけで検索したい場合はワイルドカード(*
)を活用します。
find /var/log -type f -name "*log*"
→ ファイル名に”log”を含むすべてのファイルを検索
ワイルドカードを使った柔軟な検索例
ワイルドカードの基本:
*
:任意の文字列(0文字以上)?
:任意の1文字
応用例
find /etc -type f -name "config?.conf"
→ config1.conf, configA.confなど、1文字違いのファイルを検索
grepでファイルの中身を検索する
ファイル名ではなく「ファイルの中の文字列」で検索したいときに使うのがgrep
です。
grep "検索したい文字列" ファイル名
サブディレクトリも含めてgrepする方法(再帰)
grep -r "エラー" /var/log
→ /var/log以下の全ファイルを再帰的に検索し、「エラー」を含む行を表示
findとgrepの組み合わせで高度な検索
find
とgrep
を組み合わせることで、柔軟な条件検索が可能になります。
例:拡張子が.log
のファイルから特定キーワードを検索
find /var/log -type f -name "*.log" | xargs grep "error"
locateコマンドで超高速検索
locate
コマンドは事前にインデックスされたデータベースから検索を行うため、非常に高速です。
locate sample.txt
注意点
updatedb
コマンドでデータベースを最新化しておく必要あり
よく使うファイル検索コマンドまとめ表
コマンド | 特徴 | 用途 |
---|---|---|
find | 再帰検索・属性検索に強い | ディレクトリ全体検索 |
grep | ファイル内容の検索 | ログファイルの中身検索など |
locate | 超高速だがデータベース依存 | 即時検索に便利 |
xargs | パイプと組み合わせて使う | findやgrepとセットで活用 |
よくあるエラーとトラブルシューティング
ファイルが見つからないときの原因
- 権限不足 →
sudo
の使用を検討 - 大文字・小文字の違い →
-iname
で大文字小文字無視 - updatedb未実行(locate) →
sudo updatedb
まとめ|Linuxのファイル検索は”型”を覚えれば強力な武器になる
Linuxでのファイル検索は、構文を少し理解するだけで非常に強力なツールになります。
find
で再帰・ワイルドカード・部分一致を使いこなすgrep
でファイルの中身まで検索locate
で一瞬で検索結果を出す
初心者のうちは、まずはfind
とgrep
の基本形から覚えることをおすすめします。日々の業務やサーバ管理を格段に効率化できるはずです。

