ディレクトリ内にあるファイルのタイムスタンプで新しい古いを調べる
ディレクトリ内にあるファイルでその中で一番古いファイル・一番新しいファイルを調べたい時は、find と sort を組み合わせるのがいいです
ディレクトリ内で一番古いファイを探す
find, sort を組み合わせます。
.: 対象ディレクトリ(/var/log/)配下のサブディレクトリ含めてを検索します。
-type f: ディレクトリを除外し、ファイルのみを対象にします。
-printf '%T+ %p\n': 更新日時(年-月-日+時:分:秒)とファイル名を表示します。
sort | head -n 1: 文字列として並び替えて、一番古い先頭の1行を取得します。
$ sudo find /var/log/ -type f -printf '%T+ %p\n' | sort | head -n 1 2023-04-06+14:46:18.4350000000 /var/log/anaconda/anaconda.log
ディレクトリ内で一番新しいファイを探す
一番新しいファイルを探すのは、sort -r 並び順を降順にして、一番新しいファイルにします
sort -r: 降順(新しい順)に並び替えます。
head -n 1: 先頭(一番新しいもの)を1行だけ取得します。
$ sudo find /var/log/ -type f -printf '%T+ %p\n' | sort -r | head -n 1 2026-06-11+10:17:21.9739088450 /var/log/audit/audit.log
このコマンドで使っているsortについて
並び替えで利用しているsort ですが、UNIXタイム(エポック秒)を基準にソートします。
UNIXタイムは「1970年1月1日 00:00:00 UTC」を 0 として、そこから1秒刻みでカウントアップしていく仕組みです。そのため日付が今の時刻に近づくほど数値は大きくなります。
数値のイメージ
- 過去の時点:
1700000000(例:2023年頃) - 現在の時点:
1770000000(例:2026年頃)
普段使っている感覚と違うかも知れないけど、Linuxのsortでは降順が新しい日付で、昇順は古くなります

