Linux · 1 min read · Nov 15, 2025
Linuxのターミナルからファイルを検索する方法

Linuxでファイルやディレクトリを検索して見つける方法はたくさんありますが、最も簡単で迅速なのはおそらくターミナルを通じてです。しかし、多くのLinuxユーザーはそれを知らず、不要なフラストレーションを抱えています。ここでは、システム内で探しているものを見つける手助けとなるクイックガイドを提供します。ここでは、2つの異なる検索アプリケーションをカバーします。データベースを使用して検索を高速化する「locate」コマンドと、ファイルシステム上で直接検索操作を行う「find」コマンドです。
locateコマンドを使用する
「locate」コマンドは、Linuxユーザーが利用すべき最初の手段です。なぜなら、他のどの方法よりもはるかに速いからです。この比類のない速度の理由は、locateコマンドが実際には必要なファイルやディレクトリをローカルハードディスクで検索しているのではなく、システム内のすべてのファイルパスを含むmlocate.dbデータベースファイルを読み取っているからです。
locateをまだインストールしていない場合は、次のコマンドを使用してください:
DebianおよびUbuntu
sudo apt install locateCentOS、AlmaLinux、およびRocky Linux
dnf install locate初回使用のためにlocateコマンドを準備する
初回使用前にmlocate.dbデータベースを更新するには、次のコマンドを実行します:
sudo updatedblocateを使用するには、ターミナルを開いてlocateの後に探しているファイル名を入力します。この例では、名前に「sunny」という単語を含むファイルを検索しています。
locate sunny
locateは、検索キーワードがデータベース内で何回一致したかを教えてくれます。これは、コマンドに「-c」パラメータを含めることで実現されます。これは「カウント」を意味します。
locate -c sunny
ここでユーザーが念頭に置くべきことは、「locate」は探しているファイルの具体的かつ正確な名前を必要とするということです。他のより柔軟なツールとは対照的です。つまり、locateは名前が確実にわかっているものを見つけるのには適していますが、ファイル名を正確に覚えていない場合にはあまり適していません。
locate howtoforgevs
locate Howtoforge
さらに、「locate」はデータベースファイルを読み取るため、結果が古くなっている可能性があり、完全に正確ではない場合があります。この問題を軽減するために、ターミナルセッションで「sudo updatedb」と入力してファイルパスデータベースを更新できます。
locateコマンドの使用例については、こちらを参照してください。
それでも探しているものが見つからない場合や、結果の数に圧倒されている場合は、次のステップである「find」コマンドに進んでください。
findコマンドを使用する
「find」コマンドは、はるかに強力ですが、遅い検索ユーティリティです。これは、「locate」コマンドとは異なり、「find」は実際にユーザーが探しているファイルやディレクトリをディスク上で検索するからです。findは、ファイルやディレクトリを見つけようとしているが名前を思い出せない場合に最適です。なぜなら、「find」は特定のユーザーまたはユーザーグループに属するファイル、最近変更またはアクセスされたファイル、特定のサイズ範囲のファイル、隠しファイル、実行可能ファイル、読み取り専用ファイル、および特定の権限を持つファイルを検索できるからです。最良の部分は、ユーザーが上記の複数の基準を1つの「find」コマンドで組み合わせて、結果を絞り込むことができることです。
絞り込むことについて言えば、「find」を実行する際に最初に行うべきことは、特定のディレクトリで検索するように指示することです。これにより、検索プロセスが大幅に高速化されますが、常にディレクトリのサイズに依存します。ファイルがどこにあるかがわかっている場合は、ターミナルでディレクトリに移動し、「find . [filename]」を実行します。このドットは、findに現在のディレクトリで検索するように指示します。代わりにホームディレクトリを検索したい場合は、ドットを「~/」に置き換え、ファイルシステム全体を検索したい場合は「/」を使用します。
例として、ダウンロードディレクトリにポスターを含むファイルを検索したいとします。ファイル名に「poster」という単語が含まれていることはわかっていますが、正確な名前は覚えていません。このため、ターミナルで「cd Downloads」を使用してダウンロードフォルダに移動し、次のコマンドを入力します:
sudo find . -name "*poster*"ここが結果です:

これにより、ダウンロードフォルダに「billy_poster copy」という名前のpdfファイルがあることがわかります。どこにあるかわからなかった場合でも、親ディレクトリで検索すれば「find」はダウンロードフォルダにあることを教えてくれます。

さて、「-name」パラメータを「-iname」に置き換えると、大文字小文字を無視して結果を得ることができます。これは「locate」にはない機能で、ファイル名が確実でない場合に役立つ要素です。
sudo find . -iname "*poster*"
では、同じポスターのファイルをまだ探していると仮定し、唯一覚えているのはサイズが5MB未満であることです。その場合に使用するコマンドは次のとおりです:
find ~/ -size -5Mもしそれが例えば2MB以上であることがわかっている場合、コマンドは「find ~/ -size +2M」となります。最良の部分は、findがブール演算子をサポートしており、検索をさらに強化できることです。この例では、ファイルが5メガバイト未満であり、かつ2メガバイト以上であるという知識を組み合わせたコマンドを使用します。このコマンドは次のようになります:
find / -size -5M -and -size +2M
最後に、ファイルについて何も覚えていないが、3分以内にアクセスしたことは覚えているとしましょう。それを見つけるには、findコマンドを次のように使用します:
find / -amin -3これは「find / -amin -30」で30分前、そして「-amin -120」で2時間前のファイルを検索します。もし2日前にアクセスした場合は、次のようにします:
find / -time -2これにより、検索場所で過去2日間にアクセスされたすべてのファイルが表示されます。

上記は、通常の使用ケースシナリオのほとんどをカバーしていると思います。「find」コマンドの強力な機能についての詳細は、ターミナルを開いて「man find」と入力してください。探しているものが見つかることを願っています。
Linux findコマンドのさらなる例については、こちらを参照してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。