Solaris 8에서는 파일에 액세스할 때 액세스 시간이 변경되지만 수정 시간은 동일하게 유지됩니다. 그러나 Solaris 10에서는 파일에 액세스할 때 액세스 시간과 수정 시간이 모두 변경되었습니다. 우리는 확인 at
하고 mt
사용했습니다 truss -v lstat -t lstat ls -l <file>
.
이것이 Solaris 10의 동작입니까?
답변1
UFS 또는 ZFS(또는 기타 표준 파일 시스템)에서는 작동하지 않습니다. 파일에 "액세스"하기 위해 무엇을 사용하고 있습니까? 어떤 파일 시스템을 사용하고 있나요?
$ touch test
$ stat test | grep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:25.597883067 +0000
Modify: 2013-02-20 13:04:25.597883067 +0000
$ cat test
$ stat test | grep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:38.117719129 +0000
Modify: 2013-02-20 13:04:25.597883067 +0000
$ echo test > test
$ stat test | grep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:38.117719129 +0000
Modify: 2013-02-20 13:04:54.739753877 +0000
$ cat test
test
$ stat test | egrep "^[AM]"
Access: (0644/-rw-r--r--) Uid: ( 101/ matt) Gid: ( 10/ staff)
Access: 2013-02-20 13:04:59.629405264 +0000
Modify: 2013-02-20 13:04:54.739753877 +0000
답변2
당신이 보고 있는 어떤 것이 올바르게 수행되지 않았습니다(사람의 실수). 예: vi를 사용하여 파일을 만들었습니다.유 = 미터톤:
truss -v lstat -t lstat ls -l count_files.awk
lstat64("count_files.awk", 0xFFBFF5B8) = 0
d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674
at = Feb 20 14:05:56 CET 2013 [ 1361365556.951290423 ]
mt = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
ct = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
bsz=1024 blks=3 fs=zfs
-rwxr-xr-x 1 root root 674 Feb 20 14:05 count_files.awk
이제 vi를 사용하여 파일을 다시 열지만 종료합니다.:큐!
참고하세요at은 mt와 같지 않습니다..
truss -v lstat -t lstat ls -l count_files.awk
lstat64("count_files.awk", 0xFFBFF648) = 0
d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674
at = Feb 20 14:07:58 CET 2013 [ 1361365678.550493967 ]
mt = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
ct = Feb 20 14:05:58 CET 2013 [ 1361365558.532478282 ]
bsz=1024 blks=3 fs=zfs
-rwxr-xr-x 1 root root 674 Feb 20 14:05 count_files.awk
이제 또 다른 테스트를 해보겠습니다. :q! 대신 vi를 사용하여 파일을 열고 종료합니다. (아무것도 변경하지 않았지만 vi그래도 저장될 거야파일 내용)
truss -v lstat -t lstat ls -l count_files.awk
lstat64("count_files.awk", 0xFFBFF5F8) = 0
d=0x04010003 i=58647 m=0100755 l=1 u=0 g=0 sz=674
at = Feb 20 14:09:26 CET 2013 [ 1361365766.879205630 ]
mt = Feb 20 14:09:28 CET 2013 [ 1361365768.147368630 ]
ct = Feb 20 14:09:28 CET 2013 [ 1361365768.147368630 ]
bsz=1024 blks=3 fs=zfs
-rwxr-xr-x 1 root root 674 Feb 20 14:09 count_files.awk
내가 아는 한, 읽기가 호출되면 시간이 변경되고 쓰기가 완료되면(쓰기 호출) 시간이 수정됩니다.