Linuxにおけるファイル作成日を扱う際の知っておくべきこと
Windowsとは異なり、Linux はデフォルトのファイルシステムメタデータの一部としてファイル作成日を常に保存するわけではありません—特にext3のような古いまたは従来のファイルシステムでは。 しかし、新しいファイルシステムとカーネルバージョンは部分的なサポートを提供します。
✅ 知っておくべきこと:
Linuxの標準タイムスタンプ:
atime: 最終アクセス時間
mtime: 最終変更時間
ctime: 最終ステータス変更時間(作成ではない)
作成時間(btime)サポート:
ext4、Btrfs、XFS、およびZFS(注意事項あり)で利用可能
ext4サポートにはLinux kernel 4.11+が必要
ファイル作成日を確認する方法
🧪 1. statを使用する(サポートされているファイルシステムで)
stat <filename>Birth: または btime フィールドを探します(サポートされている場合)。
🧪 2. debugfsを使用する(ext4用)
sudo debugfs /dev/sdX次に、debugfs内で:
stat /path/to/fileInode Createdまたは類似のフィールドが表示される場合があります。
3. ls -lt –time=birthを使用する(サポートされている場合)
ls -lt --time=birth注意: すべてのディストリビューションやファイルシステムで動作するわけではありません。
代替の回避策
auditdを使用して 作成イベントをリアルタイムでログに記録する
スクリプトやバージョン管理を通じて ファイル作成を手動で追跡する
ファイルシステム固有のツールを使用する(XFS用のxfs_ioなど)
開発者へのヒント
Linuxでスクリプトやプログラミングを行い、作成時間を確実に必要とする場合:
作成タイムスタンプをファイルメタデータxattrまたはログに手動で保存する
または、これをネイティブにログするデータベース/ファイルシステムを使用する


