파일 내용이 수정되면 ctime이 변경되는 이유

파일 내용이 수정되면 ctime이 변경되는 이유

내가 이해한 바로는 파일 메타데이터나 파일 내용이 변경되면 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 -ltcLinux에서는 파일 상태 정보가 마지막 수정 시간에 따라 정렬되어 표시됩니다.

좀 더 자세히 살펴보면 ctime데이터 블록 및/또는 파일 메타데이터가 변경된 이후 inode가 보고한 시간입니다. 여기에서 파일 메타데이터 변경 사항은 파일 이름, 파일 권한, 파일 속성, SELinux 컨텍스트 및 특정 파일과 관련된 기타 여러 유형의 파일 시스템 메타데이터가 변경된 이후 경과한 시간 등을 나타낼 수 있습니다. ctime이 필드는 데이터가 청크될 때마다 업데이트 되므로또는mtime메타데이터는 업데이트될 때마다 변경되고 업데이트됩니다. 그러나 해당 파일에 대한 가장 최근 변경 사항이 파일 이름 변경, chmod사용자 호출 권한 변경 등과 같은 메타데이터 변경 사항만 포함하는 경우오직 ctime그리고아니요 mtime업데이트됩니다.

ctime변경되었으나 변경되지 않은 조건 mtime은 파일 메타데이터가 어떤 방식으로든 변경되었지만 파일 자체를 구성하는 기본 데이터는 변경되지 않았음을 나타냅니다. 나는 이것이 자동화된 데이터 백업, 컴퓨터 포렌식 등에 유용할 것이라고 생각합니다.

관련 정보