2011. 10. 23. 16:29

각 파일마다 세 개의 시간 필드들이 커널에 의해 관리 된다.

 

[각 파일에 연관된 세 가지 시간 값들]

Field

Description

Example

ls(1) option

st_atime

last-access time of file data

read, exec

-u

st_mtime

last-modification time of file data

write, truncate

default

st_ctime

last-change time of i-node status

chmod, chown

-c

 

@ 파일수정시간과 상태 변경 시간의 차이를 주의:

• 파일 수정 시간(st_mtime) : 파일의 내용이 마지막으로 수정된 시간.

• 상태 변경 시간(st_ctime) : 파일의 i노드가 마지막으로 수정된 시간.

i노드의 모든 정보는 파일의 실제 내용과는 개별적으로 저장되기 때문에,

파일 수정 시간뿐만 아니라 상태 변경 시간(changed-status time)도 따로

유지할 필요가 있다. (내용이 변경된 파일 또는 i노드가 수정된 파일들만 따로 보관할 때 유용)

 

[여러 함수들의 파일 접근 시간, 수정 시간, 상태 변경 시간 갱신 여부]

Function

참조된 파일 or

디렉터리

참조된 파일 or

디렉터리의

부모 디렉터리

Note

a

m

c

a

m

c

chmod, fchmod

   

     

  

chown, fchown

   

     

  

creat

 

O_CREAT new file

creat

 

     

O_TRUNC existing file

exec

         

  

lchown

   

     

  

link

   

 

둘째 인수의 부모

mkdir

 

  

mkfifo

 

  

open

 

O_CREAT new file

open

 

     

O_TRUNC existing file

pipe

     

  

read

         

  

remove

   

 

파일 제거 = unlink

remove

       

디렉토리 제거 = rmdir

rename

   

 

for both arguments

rmdir

       

  

truncate, ftruncate

 

     

  

unlink

   

 

  

utime

     

  

write

 

     

  

touch(1)

 

새로운 파일 생성

touch(1)

     

기존 파일 업데이트

※ 디렉터리에 연관된 그 부모 디렉터리에 연관된 세 시간 값들까지 나와 있는 것은

디렉터리 항목들을 추가, 삭제, 수정하면 그 디렉터리에 연관된 세 시간 값들이 변할 수 있다.

디렉터리라는 것은 단지 디렉터리 항목(파일이름과 해당 i노드 번호)들을 담은 파일 뿐이다.

 

Posted by devanix