[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 は具体的な日時を基準に検索できます。

Shell command