find -newerオプションの使い方を完全ガイド!基準ファイルより新しいファイルを検索しよう
生徒
「Linuxで、あるファイルより新しく作られたファイルを探すにはどうすればいいですか?」
先生
「それならfindコマンドの-newerオプションが便利だよ。」
生徒
「たとえば、ログファイルより新しいファイルを探したいときにも使えますか?」
先生
「もちろん。基準となるファイルの更新時刻と比べて、それより新しいファイルだけを探せるんだ。さっそく詳しく見てみよう!」
1. find -newerオプションとは?
find -newerオプションは、Linuxのfindコマンドでよく使われる検索オプションのひとつです。指定した基準ファイルと比べて、更新日時(mtime)が新しいファイルだけを検索したいときに使います。
たとえば、「backup.logというファイルより新しく更新されたファイルを探したい」というような場面で活躍します。
2. 基本の構文を確認しよう
-newerオプションの基本的な使い方は、以下の通りです。
find [検索ディレクトリ] -newer [基準ファイル]
このコマンドは、「指定したファイルよりも新しい更新日時を持つファイル」を検索します。
3. 例:log.txtより新しいファイルを探す
たとえば、ホームディレクトリにあるlog.txtより新しく更新されたファイルを検索したいときは、次のように入力します。
find ~ -newer ~/log.txt
/home/user/Documents/new_doc.txt
/home/user/Desktop/updated_config.ini
この結果では、log.txtよりあとに更新されたファイルだけが表示されます。
4. -type fと組み合わせてファイルのみに限定
findコマンドは、通常ディレクトリも検索対象に含めます。ファイルだけを対象にしたい場合は-type fを追加しましょう。
find ~ -type f -newer ~/log.txt
/home/user/Pictures/image.jpg
/home/user/Notes/summary.txt
5. 更新日時(mtime)とは?
-newerが参照する「更新日時(mtime)」とは、ファイルの中身が変更された時刻のことです。
つまり、ファイルを開いただけでは変更されません。実際に保存操作などを行い、内容が変わったときだけ更新時刻が変わります。
確認したいときはstatコマンドを使います。
stat sample.txt
File: sample.txt
Size: 1024 Blocks: 8 IO Block: 4096 regular file
Access: 2025-09-14 14:23:00
Modify: 2025-09-16 11:45:10
Change: 2025-09-16 11:45:10
この中の「Modify」が更新日時(mtime)にあたります。
6. 逆に「新しくないファイル」を検索するには?
-newerは「基準ファイルより新しいファイル」ですが、逆に「古いファイル」を探したいときは少し工夫が必要です。
まずはtouchコマンドで一時的な基準ファイルを作成し、それより古いファイルを! -newerで検索します。
touch -r target.txt ref.tmp
find . ! -newer ref.tmp
./oldfile1.txt
./log/backup_old.tar
! -newerは、「新しくない(=基準より古い)」という意味になります。
7. バックアップ時の差分抽出に便利
ある時点でバックアップを取ったファイルと比較して、「それ以降に変更があったファイルだけ」を抽出したいときにも-newerは便利です。
たとえば、backup.timestampという空のファイルを保存しておき、次のように使います。
find ~/project -type f -newer backup.timestamp
~/project/src/main.c
~/project/docs/readme.md
このようにすると、バックアップ以降に変更されたファイルだけを効率よく抽出できます。
8. ファイルのタイムスタンプは自分で作れる
基準ファイルは、自分で作ることもできます。touchコマンドで空のファイルを作るだけです。
touch backup.timestamp
このbackup.timestampを基準にして-newerを使えば、任意の時刻を起点としたファイル検索が可能になります。
9. -newerXYオプションとの違い
-newerはmtime(更新時間)を基準にしますが、もっと細かく条件を変えたい場合は-newerXYというオプションがあります。
X=参照元の種類(a:アクセス、m:更新、c:変更)Y=比較対象の種類(a:アクセス、m:更新、c:変更)
たとえば、-newermmは「基準ファイルの更新時間より新しいファイルの更新時間」という意味になります。
ただし、初心者のうちはまず-newerから覚えるのがオススメです。
10. find -newerは安全に使える優秀ツール
find -newerは、日時を正確に比較できる優秀な検索オプションです。特定のファイルを基準にした差分検索や、バックアップ時の確認、ログ調査など幅広く使えます。
初心者でも扱いやすく、失敗の少ないコマンドなので、ぜひ積極的に活用してみてください。
まとめ
ここまで、Linuxのfindコマンドにおける-newerオプションの使い方について、基本から実践的な活用例まで順を追って見てきました。
find -newerは、指定した基準ファイルと更新日時を比較し、それより新しく変更されたファイルだけを検索できる便利な機能です。
日付や時刻を直接指定しなくても、既存のファイルを基準に検索できる点が大きな特徴であり、ログ管理やバックアップ、作業履歴の確認など、Linuxを使った日常的な運用の中で非常に役立ちます。
特に覚えておきたいのは、-newerが参照しているのが「更新日時(mtime)」であるという点です。
ファイルを開いただけではmtimeは変わらず、内容が実際に変更されたときだけ更新されます。
この仕組みを理解しておくことで、「なぜ検索結果に表示されないのか」「なぜこのファイルが対象になるのか」といった疑問も自然と解消できます。
また、-type fを組み合わせることで通常ファイルのみに絞り込める点や、! -newerを使って基準ファイルより古いファイルを検索する方法も重要です。
これらを組み合わせれば、単なるファイル検索にとどまらず、差分抽出や整理作業にも応用できます。
たとえば、前回バックアップ以降に更新されたファイルだけを洗い出すといった作業は、実務でも頻繁に行われます。
基準となるファイルは、必ずしも既存の重要ファイルである必要はありません。
touchコマンドで空のファイルを作成すれば、その作成時刻を起点にした検索が可能になります。
この考え方を知っておくと、作業開始時点や確認ポイントを自分で自由に設定できるようになり、Linuxでの作業効率が大きく向上します。
さらに、-newerXYオプションの存在にも触れました。
こちらはアクセス時刻や変更時刻など、より細かな条件で比較できる上級者向けの機能ですが、基本となる考え方は-newer
find -newerを使った振り返りサンプル
最後に、今回学んだ内容を振り返るためのシンプルなサンプルを確認しておきます。
次の例では、基準ファイルbackup.timestampより新しく更新された通常ファイルのみを検索しています。
find ~/work -type f -newer backup.timestamp
/home/user/work/report.txt
/home/user/work/src/app.c
このように、検索条件が一目で分かる形でコマンドを書けるようになると、findコマンドへの苦手意識も薄れていきます。 小さな確認作業から積み重ねていくことが、Linux操作に慣れる近道です。
生徒
「findコマンドって難しそうな印象がありましたけど、-newerは意外と分かりやすいですね。
基準になるファイルと比べるだけなら、日時を覚えなくても使えそうです。」
先生
「その通りだね。ファイルを基準にできるのが-newerの強みなんだ。
作業の区切りやバックアップのタイミングと相性がいいから、覚えておくと役立つよ。」
生徒
「更新日時がmtimeだという点も印象に残りました。 ただ開いただけじゃ変わらないって知っておくと、検索結果に納得できますね。」
先生
「うん、その理解はとても大切だよ。 仕組みを知っていると、コマンドの結果を落ち着いて判断できるようになる。」
生徒
「まずは-newerを使って、次は必要に応じて-newerXYにも挑戦してみます。」
先生
「それがいいね。焦らず、実際にコマンドを打ちながら少しずつ慣れていこう。 findコマンドは使いこなせるようになると、Linux作業が一段と楽になるよ。」