Linux共通

findコマンドについて実行例交えて徹底解説!手を動かして覚えよう!

みなさんこんばんわ。今回はLinuxでよく使われるファイル検索コマンドの「find」コマンドについて解説していきたいと思います。

みなさんはLinuxでファイルを探すときどのようにして探すでしょうか?

一般的には検索バーで対象ファイルを入力して検索しますが、findコマンドを利用することにより手軽に対象ファイルを抽出することができます。

ぜひLinuxを扱う方は今回の記事でfindコマンドについて覚えていってください。

“この記事でわかること?”

findコマンドの基本的な概要

findコマンドのコマンドとオプションの実行例

findコマンドとは?

findコマンドはファイルを検索するコマンドです。簡単にいうとファイルがどこにあるか,、探し出してくれるコマンドです。

このコマンドは非常に便利でLinuxを長期時に使うにあたり、ファイルを探す作業が大幅に削減できます。

わからないとディレクトリを自身で移動して、ファイル一つ一つを目視で探し出す必要があります。

ファイル数が少ない場合出番はありませんが、ログで特定の条件満たすファイルを探すとなると膨大な時間がかかります。findコマンドをマスターできれば希望の条件を満たすファイルをすぐに見つけられるので是非覚えましょう!

findコマンド書式

findコマンドの書式について解説します。

#find 検索する場所 [オプション] 検索ファイル名

findコマンドのオプション

こちらオプションを表にてまとめましたので、ぜひご参考ください。

意味 説明
-name ファイルやディレクトリ名を指定します
-atime 指定した日時を基に、最終アクセスがあったファイルやディレクトリを検索します
-mtime 指定した日時を基に、最終更新されたファイルやディレクトリを検索します
-ctime 「ctime」は、inodeが更新されたファイルやディレクトリを検索します
-amin 指定した分数にアクセスされた、ファイルやディレクトリを検索します
-mmin 指定した分数に更新された、ファイルやディレクトリを検索します
-anewer 指定したファイルの更新日時よりも後にアクセスしたファイルやディレクトリを検索します
-newer 指定したファイルの更新日時よりも後に変更したファイルやディレクトリを検索します
-empty ファイル容量が0のファイルやディレクトリを対象とし検索します
-size ファイル容量を指定し検索します。
-type fまたはd ファイルやディレクリを対象とし検索します
-perm パーミッションで検索します
-and 複数の条件をプラスして、当てはまるファイルやディレクトリを検索します
-or 複数の条件をプラスして、いずれかの条件に当てはまるファイルやディレクトリを検索します
-not 条件に当てはまらないファイルやディレクトリを検索します
-exec 検索結果に対してコマンドを実行します

 

findコマンド実行例

ここからfindコマンドの実行例記載します。

 -name

ファイルやディレクトリ名を指定します。

ファイル名やディレクトリ名が一部しかわからない場合でもワイルドカードを使って検索できる。

ワイルドカードは直前に「\」でエスケープしないとエラーや想定した動作にならない。

またダブルコーテーションで検索も可能

ファイルやディレクトリ名の一部のみ指定した検索ができる。デフォルトで指定されている

find-name

続いてワイルドカードを利用して、ファイル名にfileが付くファイル名を検索します。

find-name-wildcard

ワイルドカードの指定により条件を満たすファイル名を検索するのに、大変役に立ちます。

※ワイルドカードを指定する場合はダブルコーテーションが必要です。

 -atime

指定した日時を基に、最終アクセスがあったファイルやディレクトリを検索します。

・ここで指定する日時のパラメータについて解説します。

指定する日時のパラメータは以下のような意味合いを持ちます

意味
+1 1日前以上前にアクセスされたファイルを探す
-1 1日以内にアクセスされたファイルを探す
1 1日前にアクセスされたファイルを探す

それでは実行例を交えて紹介していきます。

・ファイル作成直後の動き

こちらがファイル作成時のatimeでの各数字の動きです。

ファイル作成直後ということで、「-」が表示ということは1日以内にてアクセスされたファイルということになります。

「+」,「」は一日以上前ということなのでここでは検索結果には入りませんでした。

find -atime-1

touchコマンドの-tオプションでタイムスタンプ(時刻)を一に前に戻しました。

find -atime-touch-t

その後再度各数字の動きを見てみると...

「」数字なしの「1」で検索結果が表示されました。「1」は一日前ということなので、時刻を前の日に戻した影響で出力されました。逆に「ー」の一日以内は

は時刻は前の日に戻した影響により、表示されなくなりました。

find -atime-2

 -mtime

指定した日時を基に、最終更新されたファイルやディレクトリを検索します。

更新されたファイルとは、わかりやすくいうとファイルの内容を書き換えた日時です。

find-mtime-1

-ctime

「ctime」は、inodeが更新されたファイルやディレクトリを検索します。

※inodeは、ファイルやフォルダに与えられる一意の整数値で、パーミッションや所有者の ID、グループIDなどファイルを管理するための情報と関連付けられている値です。

find-ctime-1

 -amin

指定した分数にアクセスされた、ファイルやディレクトリを検索します。

find-amin-01

 -mmin

指定した分数に更新された、ファイルやディレクトリを検索します。

find-mmin-01

-anewer

指定したファイルの更新日時よりも後にアクセスしたファイルやディレクトリを検索します。

find-anewer-1

 -newer

指定したファイルの更新日時よりも後に変更したファイルやディレクトリを検索します。

find-newer-1

 -empty

ファイル容量が0のファイルやディレクトリを対象とし検索します。

find-empty-1

 -size

ファイル容量を指定し検索します。

find-size

 -type fまたはd

ファイルやディレクリを対象とし検索します。

find-type-f-d

 -perm

パーミッションで検索します。

大事なファイルに書き込み権限がついているかなど調べる

また2つの指定方法がある

・数字

find-perm

・アルファベット

find-perm2

 -and

複数の条件をプラスして、当てはまるファイルやディレクトリを検索します。

find-and

 -or

複数の条件をプラスして、いずれかの条件に当てはまるファイルやディレクトリを検索します。

find-or

 -not

条件に当てはまらないファイルやディレクトリを検索します。

find-not

 -exec

検索結果に対してコマンドを実行します。

find-exec

まとめ

それでは以下にまとめを記載します。

“まとめ”

・ファイルやディレクトリを検索するコマンド

・複数のオプションがあり、組み合わせることでいろんな条件のファイルやディレクトリを検索可能

・非常に便利なコマンドだが、複雑で少々難易度が高い

以上となります。最初のうちはオプションが多く難しいですが、慣れれば非常に便利なコマンドですので是非覚えていきましょう!

また当メディアではいろんなコマンドに関する記事も執筆しておりますので、興味がございましたらご覧いただけますと幸いです。

  • この記事を書いた人
  • 最新記事

ミツ

サーバ初心者向け「server-beginner」を運営する「ミツ」と申します。 Linux系やwindows系などのサーバに関する部分をメインで執筆していきますので、興味ある方はぜひご覧いただけますと幸いです。 <経歴> 専門学校卒業後、ネットワーク、インフラ、プログラミングを一通り経験。 当メディアでは主にLinux分野に関する内容を発信していきます。

-Linux共通