
私が理解したのは、ファイルのメタデータやファイルの内容が変更されるとctimeが変更され、ファイルの内容が変更されるとmtimeが変更されます。
ファイルの内容が変更されると、ctimeが更新される理由を知りたいです。すでにmtimeトレース機能がありませんか?
私のMACで
usxxkothan3m1:temp kothan3$ touch foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
File: "foo.txt"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (276196474/ kothan3) Gid: (720748206/CORP\Domain Users)
Device: 1,4 Inode: 11745569 Links: 1
Access: Mon Aug 24 11:59:07 2015
Modify: Mon Aug 24 11:59:07 2015
Change: Mon Aug 24 11:59:07 2015
usxxkothan3m1:temp kothan3$ echo "write something here" >> foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
File: "foo.txt"
Size: 21 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (276196474/ kothan3) Gid: (720748206/CORP\Domain Users)
Device: 1,4 Inode: 11745569 Links: 1
Access: Mon Aug 24 11:59:24 2015
**Modify: Mon Aug 24 11:59:21 2015**
**Change: Mon Aug 24 11:59:21 2015**
usxxkothan3m1:temp kothan3$ chmod u-w foo.txt
usxxkothan3m1:temp kothan3$ stat -x foo.txt
File: "foo.txt"
Size: 21 FileType: Regular File
Mode: (0444/-r--r--r--) Uid: (276196474/ kothan3) Gid: (720748206/CORP\Domain Users)
Device: 1,4 Inode: 11745569 Links: 1
Access: Mon Aug 24 11:59:24 2015
Modify: Mon Aug 24 11:59:21 2015
**Change: Mon Aug 24 11:59:37 2015**
答え1
ctime
、または状態変更時間は、ファイルメタデータが変更された時間を示します。たとえば、$ ls -ltc
Linux では、ファイルの状態情報が最後の変更時刻に従ってソートされて表示されます。
もっと詳しく見ると、ctime
データブロックおよび/またはファイルメタデータが変更されてからinodeが報告した時間です。ここでのファイルメタデータの変更は、ファイル名、ファイル権限、ファイル属性、SELinuxコンテキスト、および特定のファイルに関連する他の多くの種類のファイルシステムメタデータが変更されてから経過した時間などを示します。ctime
このフィールドはデータがチャンクされるたびに更新されるため、またはmtime
メタデータは更新されるたびに変更され更新されます。ただし、そのファイルに対する最新の変更に、ファイル名の変更、chmod
ユーザー呼び出し権限の変更などのメタデータの変更のみが含まれている場合ただ ctime
そしていいえ mtime
更新されます。
ctime
変更されたが変更されていない条件mtime
は、ファイルメタデータが何らかの方法で変更されましたが、ファイル自体を構成する基本データは変更されていないことを示します。これは、自動化されたデータバックアップ、コンピュータフォレンジックなどに役立つと思います。