[Shell command] find で指定した日時より新しいファイルを検索する
作成日: 2026年09月24日
GNU find で指定した日時より後に更新されたファイルを検索するには、-newermt を使用します。
find . -type f -newermt '2026-09-23'
-newermt の引数には、比較基準となる日時を文字列で指定します。
タイムゾーンを指定しない場合、日時は TZ 環境変数で指定されたタイムゾーンで解釈されます。TZ が設定されていない場合は、システムのデフォルトタイムゾーンが使用されます。
実行環境に関係なく日本時間として解釈させたい場合は、次のように TZ を指定できます。
TZ=Asia/Tokyo find . -type f -newermt '2026-09-23 00:00:00'
日時文字列に UTC からのオフセットを明示することもできます。
find . -type f -newermt '2026-09-23 00:00:00 +09:00'
サーバーやコンテナごとにデフォルトタイムゾーンが異なる場合、境界となる時刻も変わるため、日時を厳密に指定したい場合はタイムゾーンも明示すると安全です。
例えば、old.txt の更新日時が 2026-09-20、new.txt の更新日時が 2026-09-24 の場合、次のコマンドを実行します。
find . -maxdepth 1 -type f -newermt '2026-09-23' -printf '%f\n'
実行結果は下記のとおりです。
new.txt
-mtime が日数を基準に検索するのに対し、-newermt は具体的な日時を基準に検索できます。