METHOD='replace' 및 METHOD='system'에 대한 GNU tar 매뉴얼 페이지의 신비한 참조

METHOD='replace' 및 METHOD='system'에 대한 GNU tar 매뉴얼 페이지의 신비한 참조

내 tar(GNU tar 1.28) 매뉴얼 페이지에는 파일이 tarball에 추가될 때 적용되는 --atime-preserve 옵션이 나열되어 있습니다. 전체 설명은 다음과 같습니다.

 --atime-preserve
       preserve access times on dumped files, either by restoring the times after reading (METHOD='replace'; default) or by not setting
       the times in the first place (METHOD='system')

그러나 METHOD='replace' 및 METHOD='system'의 정확한 의미는 아직 설명되지 않았습니다. 누구든지 이것에 대해 밝힐 수 있습니까?

답변1

그것은 단지 옵션의 가치일 뿐입니다.온라인 매뉴얼(그리고 info문서 - 확인 info tar 'Option Summary') 더 명확하게 하려면:

--atime-preserve
--atime-preserve=replace
--atime-preserve=system

파일을 읽을 때 파일 액세스 시간을 보존하십시오. 현재 이 옵션은 슈퍼유저 권한이 없는 한 자신이 소유한 파일에만 작동합니다.

--atime-preserve=replace파일을 읽기 전 해당 파일의 접근 시간을 기억하고, 파일을 읽은 후 접근 시간을 복원하세요. 다른 프로그램이 동시에 파일을 읽는 경우 액세스 시간이 손실되므로 문제가 발생할 수 있습니다. 대부분의 플랫폼에서 액세스 시간을 복원하려면 데이터 수정 시간을 복원하기 위한 tar도 필요하므로 이 옵션은 다른 프로그램이 동시에 파일에 쓰는 경우 문제를 일으킬 수도 있습니다(tar는 이 상황을 감지하려고 시도하지만 안정적으로 그렇게 할 수 없습니다). ) 콘테스트 조건). 설상가상으로 대부분의 플랫폼에서 복구 액세스 시간은 상태 변경 시간도 업데이트하므로 이 옵션은 증분 백업과 호환되지 않습니다.

--atime-preserve=system파일의 타임스탬프 변경을 방지해도 다른 프로그램으로 인한 타임스탬프 업데이트를 방해하지 않으므로 증분 백업에 더 적합합니다. 그러나 기본 작업 및 파일 시스템 구현을 위한 특수 옵션이 필요하며 O_NOATIME검색 디렉터리가 액세스 시간을 업데이트하지 않아야 합니다. 이 글을 쓰는 시점(2005년 11월) 현재 이 기능은 Linux 및 Linux 커널 2.6.8 이상에서만 사용할 수 있습니다. 더 나쁜 것은 현재 이 기능이 실제로 작동하는지 알 수 있는 신뢰할 수 있는 방법이 없다는 것입니다. 때때로 tar는 자신이 작동하지 않는다는 것을 알고 --atime-preserve=systemtar를 사용하면 불만을 표시하고 즉시 종료됩니다. 그러나 때때로 tar는 이 옵션이 유효하다고 생각할 수도 있지만 실제로는 그렇지 않습니다.

관련 정보