ファイルには様々なメタデータがあり、代表的なのはmtime, atime, ctimeとかがあります。ext3ではこれらの情報はi-nodeの情報として格納されており、stat
コマンド等で確認する事ができます。ここでctimeはChange timeなので厳密にはファイルの生成時間ではありませんが、ext4からは嬉しい事にファイル生成時間がcrtimeとして拡張されています。
さて、今お仕事で触っているRHEL6.xですが、こいつのcoreutilsのバージョンが8.4です。stat
コマンドがcrtimeの表示をサポートする初めてのコミットを含むバージョンは8.6であるため、RHNのパッケージのstat
コマンドでは確認できません。RHEL 7.xではstat
で知ることができるでしょう。
この程度のために他のリポジトリからのパッケージの導入やコンパイルをするもの億劫ですし、頻繁に使うわけでもありません。情報自体はi-nodeに格納されているため、その情報を見ることができればcrtimeを知る事ができます。debugfs
コマンドはext2, 3, 4のデバッグ用のコマンドで、これを使ってファイルのi-nodeの情報を見ることができます。
debugfs -R "stat /root/test" /dev/mapper/vg01-lv02
ファイルシステムのマウントポイントをルートとしたPATH指定なので注意。<>でくくってi-node番号指定にする事もできます。これを打つと以下のようにi-nodeの情報が出力されます。
Inode: 133370 Type: regular Mode: 0644 Flags: 0x80000 Generation: 1995841318 Version: 0x00000000:00000001 User: 0 Group: 0 Size: 250 File ACL: 0 Directory ACL: 0 Links: 1 Blockcount: 8 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x4c080d16:0bf9435c -- Thu Jun 3 21:14:14 2010 atime: 0x4c3da303:c11dd858 -- Wed Jul 14 12:44:03 2010 mtime: 0x4c080d16:0bf9435c -- Thu Jun 3 21:14:14 2010 crtime: 0x4c080d16:0bf9435c -- Thu Jun 3 21:14:14 2010 ←これ Size of extra inode fields: 28 EXTENTS: (0): 557470