findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
生徒
「最近変更したファイルだけ探したいときって、どうすればいいですか?」
先生
「それならfindコマンドで更新日時を条件に検索できますよ。」
生徒
「日付で検索できるんですか?それは便利そうですね!」
先生
「はい。例えば『今日更新したファイル』『3日前に変更されたファイル』なども簡単に探せます。」
1. findコマンドで日付検索とは?
findコマンドでは、ファイルの更新日や作成日時を条件にして検索することができます。
例えば次のような場面で役立ちます。
- 昨日編集したファイルを探したい
- 最近変更されたファイルだけ確認したい
- 古いファイルを削除したい
Windowsでいう「更新日時で並び替え」と同じようなことを、コマンドで自動的に行うイメージです。
2. 日付検索に使う基本オプション
日付や時間で検索する場合は、主に次のオプションを使います。
-mtimeファイルの更新日(変更された日)-atimeファイルを最後に開いた日-ctimeファイルの情報が変更された日
初心者の方は、まずは-mtimeを覚えれば十分です。
mtimeは「Modify Time」の略で、「ファイルが更新された時間」という意味です。
3. 今日更新したファイルを検索する方法
今日更新したファイルを探すには、-mtime 0を使います。
find . -mtime 0
./index.html
./script.sh
.は「今いるディレクトリ」という意味です。
-mtime 0は「今日更新されたファイル」を意味します。
つまりこのコマンドは、「今の場所で今日変更されたファイルを探す」という意味になります。
4. 数日前のファイルを検索する方法
例えば「3日前に更新されたファイル」を探す場合は次のように書きます。
find . -mtime 3
./old_data.txt
この場合、「3日前ちょうどに更新されたファイル」が対象になります。
しかし、実際には「3日以内」や「3日以上前」のような条件で使うことが多いです。
5. 何日以内・何日以上の検索方法
日付検索では、記号を使うことで条件を変えられます。
-mtime -33日以内-mtime +33日以上前
例として、3日以内のファイルを探してみましょう。
find . -mtime -3
./today.txt
./yesterday.log
逆に、古いファイルを探したい場合はこちらです。
find . -mtime +7
./backup_old.tar
これは「7日以上前に更新されたファイル」を探すコマンドです。
6. 分単位で検索する方法
もっと細かく時間を指定したい場合は、-mminを使います。
これは「分単位」で検索できるオプションです。
find . -mmin -60
./recent_edit.txt
この例では「60分以内に更新されたファイル」を検索しています。
短時間で変更したファイルを探すときにとても便利です。
7. ファイル名と組み合わせて検索する
findコマンドは、日付だけでなくファイル名と組み合わせることもできます。
find . -name "*.log" -mtime -1
./app.log
./error.log
このコマンドは次の意味になります。
- 拡張子が.logのファイル
- 1日以内に更新されたもの
このように条件を組み合わせることで、目的のファイルをピンポイントで見つけることができます。
8. よくある使い方と注意点
初心者の方がよく使うパターンをまとめておきます。
- 最近編集したファイルを確認する
- 古いファイルを削除する前に確認する
- ログファイルの整理
注意点として、-mtimeは「24時間単位」で計算されるため、正確な時間ではない場合があります。
より細かく知りたい場合は、-mminを使うのがおすすめです。
また、検索対象が広すぎると時間がかかるため、できるだけ検索するディレクトリを絞ると効率よく使えます。
まとめ
findコマンドはLinuxにおけるファイル検索の中でも非常に重要な基本コマンドであり、特に更新日時やアクセス日時を条件にした検索は、日々の作業効率を大きく向上させる強力な機能です。今回解説したように、mtimeを使うことでファイルの更新日を基準に検索することができ、今日更新したファイルや数日前に変更されたファイル、さらには古いファイルまで柔軟に探し出すことが可能になります。Linux初心者の方にとっては最初は難しく感じるかもしれませんが、基本の書き方を覚えてしまえば非常にシンプルで実用的です。
特に重要なポイントは、mtimeの数値の意味と記号の使い方です。例えばmtime0は本日更新されたファイル、mtimeマイナス3は三日以内、mtimeプラス7は七日以上前というように、条件を自由に指定できます。この仕組みを理解することで、ログ管理やバックアップ整理、不要ファイルの削除など、さまざまな業務に応用できます。また、mminを使えば分単位での検索も可能となり、直近の作業ファイルを探す際に非常に便利です。
さらに、findコマンドは単体でも強力ですが、nameオプションと組み合わせることで、ファイル名と更新日時を同時に条件として指定できます。例えばログファイルのみを対象にしたり、特定の拡張子のファイルだけを絞り込むことができるため、より実践的なファイル検索が実現します。このように複数の条件を組み合わせることで、目的のファイルに素早くアクセスできるようになります。
実務でよく使われる具体例としては、一定期間以上更新されていない古いファイルを見つけて削除する処理や、最近変更された設定ファイルの確認などがあります。Linuxサーバーの運用や開発環境では、ファイル数が非常に多くなるため、手動で探すのは非効率です。そのためfindコマンドを使いこなすことは、作業効率の向上だけでなく、ミスの防止にもつながります。
以下に今回の内容を踏まえたサンプルコマンドをまとめます。実際に手を動かして確認することで理解が深まりますので、ぜひ試してみてください。
find . -mtime 0
./index.html
./script.sh
find . -mtime -3
./today.txt
./yesterday.log
find . -mtime +7
./backup_old.tar
find . -mmin -60
./recent_edit.txt
find . -name "*.log" -mtime -1
./app.log
./error.log
これらのコマンドを組み合わせることで、Linux環境におけるファイル管理は格段に効率化されます。初心者の方はまずは基本形を覚え、徐々に応用的な使い方に慣れていくことが大切です。日付検索の理解は、Linuxコマンド操作の中でも非常に重要なステップとなるため、繰り返し実践してしっかり身につけましょう。
生徒
「findコマンドで日付検索ができるようになって、かなり便利だと感じました。特に最近更新したファイルをすぐ見つけられるのが助かります。」
先生
「そうですね。Linuxではファイル数が多くなるので、こうした検索コマンドは必須スキルです。mtimeやmminを使い分けることで、より正確な検索ができますよ。」
生徒
「マイナスやプラスの意味も理解できました。三日以内とか七日以上前という指定ができるのは便利ですね。」
先生
「その通りです。さらにnameオプションと組み合わせることで、特定のファイルだけを絞り込むこともできます。ログファイルの管理などに役立ちます。」
生徒
「実際の現場でも使えそうですね。これからは手動で探すのではなく、コマンドで効率よく検索していきます。」
先生
「それが大切です。Linuxコマンドは使えば使うほど慣れていきますので、今回学んだfindコマンドの日付検索をしっかり活用していきましょう。」