この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
Linuxのファイルにおけるタイムスタンプ
Linuxのファイルには、atime/ctime/mtime の3つのタイムスタンプがあります。
Windowsのファイルにおけるタイムスタンプである作成日時、更新日時、アクセス日時とは少し異なることもあり、意味合いを忘れることがあるため、備忘録としてまとめます。
タイムスタンプの概要
タイムスタンプ(atime,ctime,mtime)を一覧しましたので確認してみましょう。
ctime と mtime が似通った意味合いを持っています。
コマンド | 正式名称 | 概要 |
---|---|---|
atime | Access Time | 最後にファイルにアクセスした日時。 |
ctime | Change Time | 最後にファイルに変更を行った日時。 ファイルへの書き込みを行ったときに修正されます。 なお ctime には任意の日時を設定することはできません。 |
mtime | Modify Time | 最後にファイルに修正を行った日時。 ファイルへの書き込みやinodeなどの パラメーターの情報を変更したときに修正されます。 |
タイムスタンプの変更の実例
では実際にタイムスタンプの変更を試してみましたので確認してみます。
ファイルの3つのタイムスタンプを確認したいときは、statコマンドを利用すると確認できます。
1 2 3 4 5 6 7 8 9 |
[root@localhost]$ stat sample.txt File: `sample.txt' Size: 1772 Blocks: 8 IO Block: 4096 通常ファイル Device: fd03h/64771d Inode: 504417 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-05-29 11:12:07.588240060 +0900 Modify: 2018-05-29 11:11:27.329240132 +0900 Change: 2018-05-29 11:11:27.329240132 +0900 Birth: - |
catコマンドでファイルにアクセスするとatimeが変更したのが分かります。
1 2 3 4 5 6 7 8 9 10 |
[root@localhost]$ cat sample.txt [root@localhost]$ stat sample.txt File: `sample.txt' Size: 1772 Blocks: 8 IO Block: 4096 通常ファイル Device: fd03h/64771d Inode: 504417 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-10-22 19:31:45.416167292 +0900 Modify: 2018-05-29 11:11:27.329240132 +0900 Change: 2018-05-29 11:11:27.329240132 +0900 Birth: - |
viコマンドにて書き込みだけ行いました。
1 2 3 4 5 6 7 8 9 10 |
[root@localhost]$ vi sample.txt [root@localhost]$ stat sample.txt File: `sample.txt' Size: 1772 Blocks: 8 IO Block: 4096 通常ファイル Device: fd03h/64771d Inode: 504417 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-10-22 19:31:45.416167292 +0900 Modify: 2018-10-22 19:33:19.279211051 +0900 Change: 2018-10-22 19:33:19.279211051 +0900 Birth: - |
なお touch コマンドでファイルにアクセスすると atime と mtime が更新されます。
タイムスタンプの用途
atime、ctime、mtimeを利用する用途として、よく見るのがfindコマンドによるファイルの検索です。
2日前以上前にアクセスされたファイルを探す
1 |
find ./ -atime +2 |
3日以内に書き込みされたファイルを探す
1 |
find ./ -ctime -3 |
4日前に修正されたファイルを探す
1 |
find ./ mtime 4 |
実例として、別記事を上げていますので、興味があればコチラもご確認ください。
n日以上古いログファイルを削除する
https://www.t3a.jp/blog/infrastructure/old-log-delete/
さいごに
タイムスタンプの種類を気にすることは多くありません。
ただ細やかな状況で対応を行いたいときには大変重宝します。必要になった際に、atime や ctime の意味合いだけでも思い返した上で、本記事が参考になれば幸いです。