`mv`는 언제 파일의 타임스탬프를 변경하고, 언제 변경하지 않습니까?

`mv`는 언제 파일의 타임스탬프를 변경하고, 언제 변경하지 않습니까?

타임스탬프를 수정하지 않고 디렉터리 이동mv가 디렉터리를 변경했을 때의 타임스탬프를 나타냅니다.

외장 하드 드라이브에서 다른 외장 하드 드라이브로 파일을 전송할 때 mv디렉터리의 타임스탬프도 변경됩니다.

로컬 파일 시스템의 디렉터리에 액세스할 때 mv디렉터리의 타임스탬프가 변경되지 않습니다.

타임스탬프와 파일의 기타 속성은 언제 mv변경되고 언제 변경되지 않습니까? 감사해요.

답변1

다른 시스템에서 이 문제가 발생한 것을 기억하며 지금 테스트에서 보여주는 것과 같은 방식으로 작동하지 않았습니다. 나는 이것이 구현의 차이점이라고 생각합니다. 아래에 설명하겠습니다.

대부분의 구현에서는 mv타임스탬프를 변경하지 않고 파일을 이동하려고 시도합니다. 다만, 포스트파트 이동에 따른 효과는 고려되지 않을 수 있다.

이는 기본적으로 다음을 의미합니다.

  • 파일 시스템에서 파일이나 디렉터리를 이동하는 경우 파일이나 디렉터리의 타임스탬프는 변경되지 않습니다.

  • 파일이 다른 파일 시스템으로 이동되면 타임스탬프는 비밀 복사본이므로 현재 시간으로 재설정됩니다. 그러나 mv일반적으로 이전 타임스탬프를 최대한 복원할 만큼 똑똑하므로 액세스 시간과 수정 시간은 동일하게 "유지"되지만 변경 타임스탬프는 현재 시간으로 업데이트됩니다.

  • 빈 디렉터리를 다른 파일 시스템으로 이동하는 경우에도 동일한 규칙이 적용됩니다.

  • 콘텐츠가 포함된 디렉터리가 다른 파일 시스템으로 이동되면 새 디렉터리 mv가 생성되고 mkdir권한과 소유권이 복사되며 원래 시간이 복원됩니다. 그런 다음 디렉터리의 콘텐츠가 해당 디렉터리로 이동되고 타임스탬프가 업데이트됩니다. 일부 구현에서는 이 문제를 수정하지만(예: GNU coreutils mv8.29) 다른 구현에서는 그렇지 않습니다(예: 이 동작을 테스트한 이전 구현을 기억합니다).

  • mv~ 할 것이다언제나파일/디렉터리가 이동된 원본 디렉터리와 파일/디렉터리가 이동된 디렉터리의 타임스탬프를 업데이트합니다. (기본적으로 이 디렉터리를 수정하므로 관련 파일 시스템에 수정 타임스탬프가 있는 한 수정 타임스탬프도 업데이트됩니다. 제가 아는 한 그게 전부입니다.)

관련 정보