Linuxでファイル検索のfindコマンドを使ってファイルを探す方法を解説!
Linuxではファイルの検索はコマンドを使って検索します。今回はLinuxでファイル検索を行う「find」コマンドの使い方を解説していきます。ファイルの検索はOSの操作で最もよく行う操作ですので、是非覚えておきましょう。
目次
Linuxでファイル検索をする方法
この記事では、Linuxでファイルを検索する時に便利な「find」コマンドの使い方を解説します。Windowsでは、右上の検索窓に探したいファイル名を入力すれば、簡単にファイルを検索できますが、Linuxの場合、コマンドを使ってファイルを検索する必要があります。
findコマンドでの検索が便利!
冒頭でも述べたとおり、Linuxでファイルを検索するときは「find」コマンドを使うのが便利です。「find」コマンドは条件を指定して、Linux上のファイルやフォルダを探すことができ、階層の深いフォルダを再帰的に検索できます。
findコマンドでファイルを探す手順
では実際に「find」コマンドを使って、Linux上のファイルを検索してみましょう。以下は、tempディレクトリ内にある「sample1.txt」ファイルを探す場合のコマンドです。「find」コマンドに続けて検索したいファイル名を入力します。
上の例だけでは、「find」コマンドの使い道が分からないと思いますので、もう1つ例を出します。今度は、Linuxのファイル検索で最もよく使う、ワイルドカード指定のファイル検索です。特定の拡張子のファイル検索や、条件で指定した文字を含むファイルの検索など、Linuxのファイル検索でよく使いますので、是非覚えておきましょう。
次の例は、ファイルの拡張子が「.mp3」のファイルを検索しています。Linuxの「find」コマンドでワイルドカード検索をするには、「-name」オプションを指定し、その後ろにワイルドカードの条件を指定します。
Linuxのファイル検索で便利なfindコマンドオプション
Linuxの「find」コマンドは、上で紹介した使い方以外にも、オプションを指定することで、いろいろな条件でファイルを検索できます。ここからはLinuxの「find」コマンドで使えるオプションについて解説します。
コマンド一覧
以下の表が、Linuxの「find」コマンドで使えるオプションです。
オプション | 説明 |
---|---|
-name | ワイルドカード指定で、ファイルまたはディレクトリ名を部分一致で検索します |
-atime | オプションで指定した日に最終アクセスしたファイルを検索します |
-mtime | オプションで指定した日に変更を行ったファイルを検索します |
-amin | オプションで指定した時間にアクセスしたファイルや検索します |
-mmin | オプションで指定した時間に変更を行ったファイルを検索します。 |
-anewer | 指定したファイルの更新日時と比較して、最終アクセス時間がそれ以降のファイルを検索します。 |
-newer | 指定したファイルの更新日時と比較して、更新時間がそれ以降のファイルを検索します。 |
-empty | ファイルサイズが0バイトのものを検索します |
-type f | 検索対象をファイルのみに限定します。逆にディレクトリのみを検索対象にする場合は、「-type d」と指定します。 |
-and | 複数の検索条件指定して、すべての条件が一致(AND)するファイルを検索します。 |
-or | 複数の検索条件指定して、いずれかの条件が一致(OR)するファイルを検索します。 |
-not | 条件に一致しない(NOT)ファイルを検索します。 |
-exec | 検索結果に対して、オプションで指定したコマンドを実行します。 |
Linuxでファイル検索できるその他のコマンド
Linuxでは「find」コマンド以外にも、「grep」や「locate」コマンドでも、Linux上のファイルが検索できます。
grepコマンド
「grep」コマンドは、ファイルを検索するためのコマンドではありませんが、「ls」コマンドと「grep」コマンドを組み合わせると、Linux上のファイルを検索できます。「grep」コマンドでLinux上のファイルを検索するには、以下のようにコマンドを入力します。
```
ls [検索対象のディレクトリ] | grep "[検索文字列]"
```
locateコマンド
「locate」コマンドでも、Linux上のファイルを検索できます。「locate」コマンドは、「find」コマンドでは時間がかかって検索できない膨大な数のファイルから、目的のファイルを高速に検索できます。「locate」コマンドでLinux上のファイルを検索するには、以下のようにコマンドを入力します。
```
locate [検索キーワード]
```
「locate」コマンドは、ファイル名の情報を格納したデータベースを利用して高速にLinux上のファイルを検索します。そのため、コマンドを使う前にデータベースの作成が必要になりますので注意してください。「updatedb」コマンドを用いてLinux上にファイル名のデータベースを作成しておきます。
Linuxでファイル検索しよう!
今回は、Linuxでファイルを検索するコマンドを3つ紹介しました。また、冒頭でもお伝えした通り、Linuxの場合、コマンドを使ってファイルを検索する必要があります。ファイルの検索は、OSの基本操作になりますので、是非覚えておいてください。
今回紹介した3つのコマンドは、LinuxだけでなくMacでも使用できます。Linuxは使う予定はないけど、将来Macを使用しようと考えている方は、覚えておいて損はないでしょう。