ファイルのタイムスタンプ


カテゴリー: Tips | 投稿日: | 投稿者: -->

インシデントが起きたとき、よく「ファイルのタイムスタンプは信用ならん」と言われる。
なので、簡単に変更できるかやってみた。

▼Linux/Unix(ファイルスタンプ確認方法)
「mac」とも言われるように、一般的に3種類ある。
atime(access time/アクセス時間): 最終アクセス時刻
mtime(modify time/修正時間): 最終変更時刻(iノード管理)
ctime(change time/作成時間): 最終ステータス変更時刻
※ctimeはcreateではないことに注意

atime
最後にファイルにアクセスした時刻のこと。
ファイル内容を read(2) した場合に変更される。
ファイルをオープンしただけでは変更されない、ファイル内容を write(2) しても変更されない。

mtime
最後にファイルを変更した時刻のこと。
ファイルに write(2) または truncate(2) した場合に変更される。

ctime
最後にファイルを変更した時刻のこと。
ファイルに write(2) または truncate(2) した場合、そして inode データの修正を行った場合に変更される。
inode データに含まれるのは、「ファイル名、ファイルサイズ、パーミッション、リンク数、オーナー・グループ 」など。
write(2)・rename(2)・truncate(2)・chmod(2)・link(2)・chown(2) などのシステムコールが発行された場合に変更される。

ファイルの各タイムスタンプの表示方法は以下のとおり。
stat [ファイル名]

[root@localhost tmp]# stat test.txt
File: `test.txt’
Size: 6 Blocks: 8 IO Block: 4096 通常ファイル
Device: fd00h/64768d Inode: 262798 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-10-23 07:26:00.000000000 +0900
Modify: 2010-10-22 23:17:41.000000000 +0900
Change: 2010-10-22 23:37:43.000000000 +0900

lsコマンドでも確認可能。
ls -lu で atime
ls -l で mtime
ls -lc で ctime

[root@localhost tmp]# ls -lu test.txt
-rw-r–r– 1 root root 6 10月 23 07:26 test.txt
[root@localhost tmp]# ls -l test.txt
-rw-r–r– 1 root root 6 10月 22 23:17 test.txt
[root@localhost tmp]# ls -lc test.txt
-rw-r–r– 1 root root 6 10月 22 23:37 test.txt

▼Linux/Unix(ファイルスタンプ変更方法)
touch

▼Windows(ファイルスタンプ確認方法)
同様に3種類ある。
作成日時:ファイルを作成した日時。例えば、コピー&ペーストして新規にファイル作成した時の日時。
更新日時:ファイルを最後に書換えた日時。新規作成時は作成日時と同じ。その後、その後、更新する毎の日時。
アクセス日時:ファイルを最後に開いた日時。読み出しただけでも、変更される。

▼Windows(ファイルスタンプ変更方法)
touch

コメントを残す

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