date -r

ls -lコマンドでファイルの更新日時を取得できる。
しかし更新日時の他に権限やオーナーなどの情報も表示されるため、シェルスクリプトなどで日時だけ欲しい場合などに不便。

$ ls -l ファイル名
-rw-r--r-- 1 user group 1234 May 28 22:29 ファイル名

date -rコマンドを使用すると、ファイルの更新日時のみを取得できる。

$ date -r ファイル名
2025年 05月 28日 22:29:59 JST

フォーマット

フォーマットを指定して出力をカスタマイズできる。

$ date -r ファイル名 +"%Y-%m-%d %H:%M:%S"
2025-05-28 22:29:59
  • %Y: 西暦4桁
  • %y: 西暦下2桁
  • %m: 月(01-12)
  • %b: 月短縮形(Jan, Feb, …)
  • %B: 月完全形(January, February, …)
  • %d: 日(01-31)
  • %H: 時(00-23)
  • %I: 時(01-12)
  • %M: 分(00-59)
  • %S: 秒(00-59)
  • %Z: タイムゾーン(JSTなど)
  • %z: タイムゾーンオフセット(+0900など)
  • %a: 曜日
  • %A: 曜日
  • %u: 曜日番号(1=月曜日, 7=日曜日)
  • %F: YYYY-MM-DD
  • %T: HH:MM:SS