나는 이러한 (파일 및) 디렉토리를 변경하지 않고 디렉토리 구조를 얻을 수 있기를 원합니다 chmod
.atime
이런 파일 구조로 시작하면
$ tree test/
test/
├── test1.txt
└── text2.txt
atime
파일 및 디렉토리 목록
$ find test/ -exec stat --printf='name: %n atime: %x\n' {} \;
name: test/ atime: 2019-02-28 11:28:24.418369586 +0100
name: test/text2.txt atime: 2019-02-28 11:28:03.609919183 +0100
name: test/test1.txt atime: 2019-02-28 11:27:58.101799544 +0100
그럼 chmod
저것들
$ chmod -R 'u=Xrw,g=Xrw,o=Xr' test
이는 atime
디렉토리의 s를 변경합니다(그렇습니다. s는 영향을 받지 않습니다) mtime
.
$ find test/ -exec stat --printf='name: %n atime: %x\n' {} \;
name: test/ atime: 2019-02-28 11:38:30.590740343 +0100
name: test/text2.txt atime: 2019-02-28 11:28:03.609919183 +0100
name: test/test1.txt atime: 2019-02-28 11:27:58.101799544 +0100
이것을 피하는 쉬운 방법이 있습니까? atime
수정 전에 콘텐츠를 저장하고 수정 후에 재설정하는 스크립트를 확실히 작성할 수 있습니다 . 하지만 더 쉬운 방법이 있나요?
답변1
귀하의 예에서는 디렉토리만 변경되었습니다. 의 마운트 옵션에 nodiratime
(디렉터리만) 또는 noatime
(를 포함한 파일 및 디렉터리 ) 를 추가하여 atime을 비활성화할 수 있습니다 . 그러면 ctime만 변경해야 합니다.nodiratime
/etc/fstab
재정의하지 않는 한, 명령을 실행할 때 커널 기본값이 relatime
표시됩니다 mount
.
설치(8)
relatime
Update inode access times relative to modify or change time. Access time is only
updated if the previous access time was earlier than the current modify or change
time. (Similar to noatime, but it doesn't break mutt or other applications that
need to know if a file has been read since the last time it was modified.)
Since Linux 2.6.30, the kernel defaults to the behavior provided by this option
(unless noatime was specified), and the strictatime option is required to obtain
traditional semantics. In addition, since Linux 2.6.30, the file's last access time
is always updated if it is more than 1 day old.
그런데. chmod는 여기서 작동하지 않습니다. 그런 뜻 이었습니까 chmod -R u=rwx,g=rwx,o=rwx test
?