파일과 디렉토리에 대한 atime, ctime, mtime에 대해 배우고 있습니다. 제가 보기에는 디렉토리에 있는 파일을 수정하더라도 "디렉토리 파일" 자체의 inode나 파일 내용은 변경되지 않으므로 ctime과 mtime은 동일하게 유지되어야 합니다.
그런데 아래 테스트에서는 파일을 편집하면 변경시간과 수정시간이 바뀌는 현상이 발생합니다. 그들은 왜 변했는가?
$ ls
blah.txt test.txt test.txt~
$ cd ..
$ stat -x Write
File: "Write"
Size: 170 FileType: Directory
Mode: (0777/drwxrwxrwx) Uid: ( 501/user) Gid: ( 20/ staff)
Device: 1,4 Inode: 652017 Links: 5
Access: Tue Aug 11 08:20:33 2015
Modify: Tue Aug 11 08:01:49 2015
Change: Tue Aug 11 08:01:49 2015
$ cd Write
$ ls
blah.txt test.txt test.txt~
$ emacs test.txt
$ cd ..
$ stat -x Write
File: "Write"
Size: 170 FileType: Directory
Mode: (0777/drwxrwxrwx) Uid: ( 501/user) Gid: ( 20/ staff)
Device: 1,4 Inode: 652017 Links: 5
Access: Tue Aug 11 08:20:48 2015
Modify: Tue Aug 11 08:20:48 2015
Change: Tue Aug 11 08:20:48 2015
답변1
실행하면 emacs
해당 케이스에 백업 파일이 생성됩니다 test.txt~
. 해당 이름의 파일이 이미 존재한다면 해당 파일을 삭제하고 새 파일을 생성할 것으로 의심됩니다. 새 파일을 생성하면 디렉토리가 수정되므로 수정 및 변경 시간이 업데이트됩니다.
echo new line >> blah.txt
대신 추가 파일을 생성하지 않을 것이므로 디렉터리에서 이러한 항목을 업데이트하지 않을 것이라고 말하면 됩니다 . 이 경우 쉘은 파일(추가용)만 엽니다.