메뉴 건너뛰기

GREATUSER

tech

atime, mtime, ctime 의 차이점

위대한유저 2014.11.27 04:25 조회 수 : 1172


리눅스를 사용시.. 특히 find 옵션을 줄때 

atime

mtime

ctime 

등 의 옵션을 주는경우가 있다.


혹시 이 내용의 구분이 어렵다면 다음과 같이 생각해 보자.



1. 파일정보

명령어 : stat

stat 명령을 이용해서 파일을 보자.

결과가 대략 이렇게 나오는데


# stat hw.txt 
  File: `hw.txt'
  Size: 22975      Blocks: 48         IO Block: 4096   일반 파일
Device: 802h/2050d Inode: 786492      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-10-20 10:55:08.477882048 +0900
Modify: 2014-10-01 13:19:06.799179062 +0900
Change: 2014-10-01 13:19:06.799179062 +0900
 Birth: -


위 정보중


Access 에 기록된 시간이 바로 atime

Modify 에 기록된 시간이 바로 mtime

Change 에 기록된 시간이 바로 ctime

이 되겠다... 


위 파일을 가지고 예를들어 설명해 보도록 하겠다.



2. atime

말그대로 파일에 접근한 시간을 의미한다.

편집기로 열거나, 아니면 파일의 내용을 확인하는 형태의 다른 명령어(grep 등.. )가 실행될 경우 변경된다.


# grep '' hw.txt  [결과는 생략함]
# stat hw.txt 
  File: `hw.txt'
  Size: 22975      Blocks: 48         IO Block: 4096   일반 파일
Device: 802h/2050d Inode: 786492      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-11-26 17:43:18.723701989 +0900
Modify: 2014-10-01 13:19:06.799179062 +0900
Change: 2014-10-01 13:19:06.799179062 +0900
 Birth: -


예제처럼 grep 을 이용해서 hw.txt 파일에 접근후 stat 으로 상태 확인을 해보면

Access 항목 즉, atime 이 변경되었음을 알 수 있다.



3. ctime

파일이 수정된 시간인데... 그중에서도 파일의 속성이 수정된 시간을 의미한다.

- 퍼미션

- 소유권

등의 정보 수정이 이루어질때 변경된다.


# chmod 600 hw.txt 
# stat hw.txt 
  File: `hw.txt'
  Size: 22978      Blocks: 48         IO Block: 4096   일반 파일
Device: 802h/2050d Inode: 786492      Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-11-26 17:43:18.723701989 +0900
Modify: 2014-10-01 13:19:06.799179062 +0900
Change: 2014-11-26 17:49:54.541238037 +0900
 Birth: -




4. mtime

파일이 수정된 시간인데... 그중에서도 파일의 내용이 수정된 시간을 의미한다.

파일내용이 수정/추가/삭제 등의 작업이 이루어질때 변경된다.


# echo "hahaha" >> hw.txt 
# stat hw.txt 
  File: `hw.txt'
  Size: 22994      Blocks: 48         IO Block: 4096   일반 파일
Device: 802h/2050d Inode: 786247      Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-11-26 17:53:48.765890656 +0900
Modify: 2014-11-26 17:55:33.267827347 +0900
Change: 2014-11-26 17:55:33.267827347 +0900
 Birth: -


설명에는 파일내용이 수정될때 mtime이 변경된다고 했는데.. 

파일을 수정후에 stat을 통한 결과를 보자 ctime 이 같은 시간으로 변경된것을 알 수 있다.


이것은 파일 내용이 수정될때.. 내용뿐만 아니라 파일 사이즈가 같이 수정되었기 때문이고

파일 사이즈는 파일의 속성이기 때문에 같이 변경된다고 이해하면 되겠다... 



이상~


위로