ディレクトリ内にあるファイルのタイムスタンプで新しい古いを調べる

ディレクトリ内にあるファイルでその中で一番古いファイル・一番新しいファイルを調べたい時は、findsort を組み合わせるのがいいです

ディレクトリ内で一番古いファイを探す

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では降順が新しい日付で、昇順は古くなります

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です