파일 및 해당 상위 디렉토리의 atime, mtime 또는 ctime을 변경하시겠습니까?

파일 및 해당 상위 디렉토리의 atime, mtime 또는 ctime을 변경하시겠습니까?

파일의 atime, mtime 또는 ctime을 변경하면 어떤 영향이 있습니까?

  • 상위 디렉토리의 atime, mtime 또는 ctime 및
  • 상위 디렉토리의 atime, mtime 또는 ctime?

답변1

를 사용하면 이 정보를 쉽게 얻을 수 있습니다 stat. 상위 디렉터리의 경우 다음을 보면 파일이 변경되었는지 쉽게 확인할 수 있으며 "계층 구조 위"에는 영향을 주지 않습니다 /.

root@pooh:/home/anthon-mint# stat /
  File: ‘/’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 804h/2052d  Inode: 2           Links: 30
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-02-22 09:57:14.028146463 +0100
Modify: 2015-01-01 10:34:05.528461374 +0100
Change: 2015-01-01 10:34:05.528461374 +0100
 Birth: -

시스템은 지속적으로 파일을 변경하므로 이 값은 현재 시간에 가까워야 합니다.

새 디렉토리를 생성한 다음 그 안에 파일을 생성하면 디렉토리의 액세스 및 수정 시간이 변경됩니다.

$ mkdir tmp
$ stat tmp
  File: ‘tmp’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 700h/1792d  Inode: 144141      Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1001/  anthon)   Gid: (  100/   users)
Access: 2015-02-27 16:19:02.523585508 +0100
Modify: 2015-02-27 16:19:02.523585508 +0100
Change: 2015-02-27 16:19:02.523585508 +0100
 Birth: -
$ touch tmp/bla
$ stat tmp
  File: ‘tmp’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 700h/1792d  Inode: 144141      Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1001/  anthon)   Gid: (  100/   users)
Access: 2015-02-27 16:19:02.523585508 +0100
Modify: 2015-02-27 16:19:18.639585445 +0100
Change: 2015-02-27 16:19:18.639585445 +0100
 Birth: -

액세스 시간은 변경되지 않지만 새 파일을 생성하면 수정 및 변경 시간이 변경됩니다.

이제 파일을 다시 터치하세요.

$ touch tmp/bla
$ stat tmp
  File: ‘tmp’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 700h/1792d  Inode: 144141      Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1001/  anthon)   Gid: (  100/   users)
Access: 2015-02-27 16:19:02.523585508 +0100
Modify: 2015-02-27 16:19:18.639585445 +0100
Change: 2015-02-27 16:19:18.639585445 +0100
 Birth: -
$ 

디렉터리는 변경되지 않지만 새 파일이 생성되지 않기 때문에 디렉터리 정보는 변경되지 않습니다.

객체의 mtime, atime 또는 ctime 변경기존 파일포함된 디렉터리나 해당 디렉터리의 상위 디렉터리에는 아무런 영향을 미치지 않습니다.

답변2

파일의 inode가 아직 캐시에 없으면 최대 디렉터리의 atime(액세스 시간) 필드가 업데이트됩니다. 그러나 최신 Linux 커널의 기본 설정은 relatime이 플래그를 사용하여 파일 시스템을 마운트하는 것입니다. 즉, 수정 시간(mtime) 이후에 파일이나 디렉터리에 액세스하고 현재 atime이 mtime보다 이전인 경우에만 atime이 업데이트된다는 의미입니다.

mtime(수정 시간)은 파일(또는 디렉터리 또는 기타 항목)이 삭제되거나 이름이 바뀌거나 추가되거나 디렉터리 이름이 변경(이동)되는 등 디렉터리가 실제로 수정될 때만 업데이트됩니다.

디렉토리 inode의 내용이 변경될 때마다 권한, 소유자 및 mtime을 포함하여 ctime(inode 변경 시간)이 수정됩니다.

관련 정보