みなさんこんばんわ。今回は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
ファイルやディレクトリ名を指定します。
ファイル名やディレクトリ名が一部しかわからない場合でもワイルドカードを使って検索できる。
ワイルドカードは直前に「\」でエスケープしないとエラーや想定した動作にならない。
またダブルコーテーションで検索も可能
ファイルやディレクトリ名の一部のみ指定した検索ができる。デフォルトで指定されている
続いてワイルドカードを利用して、ファイル名にfileが付くファイル名を検索します。
ワイルドカードの指定により条件を満たすファイル名を検索するのに、大変役に立ちます。
※ワイルドカードを指定する場合はダブルコーテーションが必要です。
-atime
指定した日時を基に、最終アクセスがあったファイルやディレクトリを検索します。
・ここで指定する日時のパラメータについて解説します。
指定する日時のパラメータは以下のような意味合いを持ちます
値 | 意味 |
+1 | 1日前以上前にアクセスされたファイルを探す |
-1 | 1日以内にアクセスされたファイルを探す |
1 | 1日前にアクセスされたファイルを探す |
それでは実行例を交えて紹介していきます。
・ファイル作成直後の動き
こちらがファイル作成時のatimeでの各数字の動きです。
ファイル作成直後ということで、「-」が表示ということは1日以内にてアクセスされたファイルということになります。
「+」,「」は一日以上前ということなのでここでは検索結果には入りませんでした。
touchコマンドの-tオプションでタイムスタンプ(時刻)を一に前に戻しました。
その後再度各数字の動きを見てみると...
「」数字なしの「1」で検索結果が表示されました。「1」は一日前ということなので、時刻を前の日に戻した影響で出力されました。逆に「ー」の一日以内は
は時刻は前の日に戻した影響により、表示されなくなりました。
-mtime
指定した日時を基に、最終更新されたファイルやディレクトリを検索します。
更新されたファイルとは、わかりやすくいうとファイルの内容を書き換えた日時です。
-ctime
「ctime」は、inodeが更新されたファイルやディレクトリを検索します。
※inodeは、ファイルやフォルダに与えられる一意の整数値で、パーミッションや所有者の ID、グループIDなどファイルを管理するための情報と関連付けられている値です。
-amin
指定した分数にアクセスされた、ファイルやディレクトリを検索します。
-mmin
指定した分数に更新された、ファイルやディレクトリを検索します。
-anewer
指定したファイルの更新日時よりも後にアクセスしたファイルやディレクトリを検索します。
-newer
指定したファイルの更新日時よりも後に変更したファイルやディレクトリを検索します。
-empty
ファイル容量が0のファイルやディレクトリを対象とし検索します。
-size
ファイル容量を指定し検索します。
-type fまたはd
ファイルやディレクリを対象とし検索します。
-perm
パーミッションで検索します。
大事なファイルに書き込み権限がついているかなど調べる
また2つの指定方法がある
・数字
・アルファベット
-and
複数の条件をプラスして、当てはまるファイルやディレクトリを検索します。
-or
複数の条件をプラスして、いずれかの条件に当てはまるファイルやディレクトリを検索します。
-not
条件に当てはまらないファイルやディレクトリを検索します。
-exec
検索結果に対してコマンドを実行します。
まとめ
それでは以下にまとめを記載します。
“まとめ”
・ファイルやディレクトリを検索するコマンド
・複数のオプションがあり、組み合わせることでいろんな条件のファイルやディレクトリを検索可能
・非常に便利なコマンドだが、複雑で少々難易度が高い
以上となります。最初のうちはオプションが多く難しいですが、慣れれば非常に便利なコマンドですので是非覚えていきましょう!
また当メディアではいろんなコマンドに関する記事も執筆しておりますので、興味がございましたらご覧いただけますと幸いです。