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は、日時を正確に比較できる優秀な検索オプションです。特定のファイルを基準にした差分検索や、バックアップ時の確認、ログ調査など幅広く使えます。
初心者でも扱いやすく、失敗の少ないコマンドなので、ぜひ積極的に活用してみてください。