Linuxでファイルのタイムスタンプを表示/変更する方法

Linuxでファイルのタイムスタンプを表示/変更する方法

Linuxでは、ファイルやディレクトリに対してWindowsと同じようにタイムスタンプ(最終更新日時、作成日時、最終アクセス日時)が記録されています。

そこでここでは、RedHat系LinuxのAlmaLinuxを例に、ファイルのタイムスタンプを表示する方法や、ファイルのタイムスタンプを変更する方法を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
AlmaLinux9.4

タイムスタンプの確認(表示)

ファイルのタイムスタンプ(最終更新日時、状態更新日時、最終アクセス日時)を確認するときは、lsコマンドやstatコマンドを使います。

最終更新日時(mtime)

ファイルの最終更新日時(mtime)を確認するときは、以下のようにコマンドを実行します。

$ ls -l file_1.dat
-rw-r--r-- 1 root root 28 5月 29 19:55 file_1.dat

最終状態変更日時(ctime)

ファイルの最終状態変更日時(ctime)を確認するときは、以下のようにコマンドを実行します。

$ ls -cl file_1.dat
-rw-r--r-- 1 root root 28 6月 1 17:49 file_1.dat

最終アクセス日時(atime)

ファイルの最終アクセス日時(atime)を確認するときは、以下のようにコマンドを実行します。

$ ls -ul file_1.dat
-rw-r--r-- 1 root root 28 6月 1 17:53 file_1.dat

一括で確認したいときは

lsコマンドでは、上のようにオプションを変えてタイムスタンプ(最終更新日時、状態更新日時、最終アクセス日時)を確認する必要がありますが、statコマンドを使えば、タイムスタンプを一括で確認することができます。

  • Access:最終アクセス日時
  • Modify:最終更新日時
  • Change:最終状態変更日時
$ stat file_1.dat
File: file_1.dat
Size: 28 Blocks: 8 IO Block: 4096 通常ファイル
Device: fd00h/64768d Inode: 33687576 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2024-06-01 17:53:06.917617690 +0900
Modify: 2024-05-29 19:55:12.613361549 +0900
Change: 2024-06-01 17:49:57.539326055 +0900
Birth: 2024-05-29 19:55:12.613361549 +0900

タイムスタンプの変更

ファイルのタイムスタンプを変更するときは、touchコマンドを使うことで、最終更新日時や最終アクセス日時を任意の日時に変更できます。

最終更新日時の変更

ファイルの最終更新日時を「2023 12/31 15:00」に変更したいときは、以下のようにコマンドを実行します。

$ touch -m -t 202312311500 file_1.dat
$ ls -l file_1.dat --time-style=+'%Y/%m/%d %H:%M:%S' 
-rw-r--r-- 1 root root 28 2023/12/31 15:00:00 file_1.dat

最終アクセス日時の変更

ファイルの最終アクセス日時を「2023 12/31 15:00」に変更したいときは、以下のようにコマンドを実行します。

$ touch -a -t 202312311500 file_1.dat
$ ls -ul file_1.dat --time-style=+'%Y/%m/%d %H:%M:%S'
-rw-r--r-- 1 root root 28 2023/12/31 15:00:00 file_1.dat