쉘을 사용하고 있습니다 bash
. 편집기로 파일을 열고 vi
커서를 한 번도 움직이지 않고 닫는다면, 내가 아는 한 파일의 마지막 액세스 시간은 편집기로 열었기 때문에 변경되어야 합니다.
하지만 파일을 실험해 보니 이런 일이 발생하지 않았습니다. 이 경우 마지막 액세스 시간은 변경되지 않습니다. 제가 뭔가 잘못 이해한 걸까요?
마지막 액세스 시간의 개념을 더 명확하게 설명하고 vi
편집자가 이 타임스탬프를 수정하지 않고 파일에 액세스할 수 있는 방법을 설명해주세요.
답변1
Linux에서 이제 커널은 relatime
파일 시스템을 마운트할 때 기본적으로 이 옵션을 활성화합니다(참조:mount
맨페이지자세히 알아보기) 이 옵션을 사용하면 다음과 같은 경우에만 액세스 시간이 업데이트됩니다.
- 마지막 액세스 시간이 현재 수정 또는 변경 시간(즉, 마지막으로 액세스한 이후 파일의 내용이나 메타데이터가 변경되었습니다.)
- 또는 마지막 방문 후 하루 이상 지났습니다.
이는 일반적인 시스템 사용과 관련된 디스크 쓰기 횟수를 줄이는 동시에 이에 의존하는 특정 프로그램(특히 특정 메일 클라이언트)에 대한 액세스 정보를 계속 유지하고 액세스 시간 추적에 대한 어느 정도 측정값을 제공하지만 파일에 대한 세분성은 떨어지지만 거의 이 방법으로 승리했습니다. 변하지 않아.
즉, relatime
마운트된 파일 시스템에서 액세스 시간은 더 이상 정확한 타임스탬프가 아니라 표시기입니다. 이를 통해 파일이 마지막 수정된 이후 액세스되었는지 여부 또는 전체 액세스 시간인지 여부를 확인할 수 있습니다. -일 단위.
이 동작을 제어할 수 있는 옵션이 많이 있습니다. man mount
자세한 내용은 링크된 맨페이지나 시스템의 맨페이지를 참조하세요.