메뉴 건너뛰기

GREATUSER

tech

atime, mtime, ctime 의 차이점

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


리눅스를 사용시.. 특히 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 이 같은 시간으로 변경된것을 알 수 있다.


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

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



이상~


번호 제목 글쓴이 날짜 조회 수
34 How to download and install prebuilt OpenJDK packages in LINUX(redhat and ubuntu) 관리자 2018.04.24 1226
33 XE 1.8.3 Release 위대한유저 2015.06.11 1324
32 yum update error: "error was [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"" 위대한유저 2015.01.30 1542
31 mysql server system variables log_warnings to log_error_verbosity 관리자 2016.10.05 1680
30 XE 1.8.2까지의 버전에서 슬라이드 사용안함 속성이 반영 안되는 문제 위대한유저 2015.05.21 1754
29 error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE in PHP (after update centos-7.4) 관리자 2017.11.15 1838
28 mysql error : No data – zero rows fetched, selected, or processed 관리자 2016.04.06 2058
27 IE 확대/축소 기능끄기 위대한유저 2014.07.01 2477
26 윈도우에서 ARP CACHE 삭제/초기화 하는 방법 위대한유저 2015.05.29 2694
25 xfce4 on centos7(rhel7) 위대한유저 2015.01.28 2871
24 넷북 환경에서 윈도우 8.1 업데이트 하기 위대한유저 2014.05.14 3534
23 net use 사용시 시스템 오류 58(이)가 생겼습니다. 위대한유저 2015.04.08 6082
22 [python] 현재 실행중인 함수 이름 구하기 (sys._getframe().f_code.co_name) 관리자 2018.03.28 7304
21 아파치(httpd) ServerTokens 설정 위대한유저 2014.03.16 8657
20 Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP 위대한유저 2014.01.01 14133
위로