간단한 인간 언어로 초보자에게 -mtime의 의미를 설명합니다.

간단한 인간 언어로 초보자에게 -mtime의 의미를 설명합니다.

물론 설명서의 몇 줄도 읽었습니다. 나는 여전히 구체적인 내용에 관심이 있습니다. 예를 들어, stat / some_files 이 명령은 다음을 인쇄합니다.

access 2024 (now)
modified 2022
changeded 2023
created 2023

예를 들어 프로그램 구성 요소, 드라이버, 라이브러리, 스크립트 등입니다. 제가 관심있는 것은 2022 개정판이 무엇을 의미하는가 입니다. 이는 패키지를 다운로드한 후 해당 디렉터리에 압축을 풀거나 디스크에 쓰는 작업이 정확히 이 날짜/시간에 수행된다는 의미입니까? 이런 맥락에서 '만들다'는 것은 지금으로부터 1년 후에 무엇을 의미하는가?

답변1

나는 당신이 이미 기본 사항을 알고 있다고 생각합니다.

  • 액세스 시간은 파일에 대한 가장 최근 액세스를 반영합니다(파일 시스템에서 세분성이 다르거나 relatime사용되는 경우 전혀 없음).noatime
  • 수정 시간은 파일 내용이 마지막으로 수정된 시간을 반영합니다.
  • 변경 시간은 파일 메타데이터의 가장 최근 수정 사항을 반영합니다.
  • 생성 시간은 파일 시스템에서 파일이 생성된 시간을 반영합니다.

귀하의 사례에는 한 가지 더 중요한 미묘함이 있습니다.액세스 및 수정 시간변경될 수 있으며 변경 및 생성 시간은 파일 시스템에 의해 설정됩니다. 특히 수정시간은 대개 아카이브에 저장되었다가 아카이브 추출 시 복원된다. 따라서 예를 들어 배포 패키지를 설치하는 경우 포함된 파일에는 패키지가 설치된 시간(파일이 생성된 시간)에 해당하는 생성 타임스탬프가 있습니다.귀하의 시스템에서), 아카이브에 저장된 타임스탬프에 해당하는 수정 타임스탬프(일반적으로 패키지가 빌드된 시간)입니다.

따라서 접근시간과 수정시간이 모호하다.~해야 한다파일 수명 주기의 특정 이벤트를 반영하지만 업데이트(액세스 시간에 대해)를 건너뛰거나 특정 이벤트와 독립적으로 업데이트될 수 있습니다. 임의의 값으로 설정할 수 있으므로 시간 순서가 보장되지 않습니다.

따라서 2022년에 빌드된 패키지에서 2023년에 설치되고 2024년에 마지막으로 액세스한 파일은 처음에 생성(파일 시스템이 이를 지원하는 경우)을 가지며 마지막으로 변경된 타임스탬프는 2023년, 수정 타임스탬프는 2022년, 마지막 액세스 타임스탬프는 2022입니다. . 2024. 생성 타임스탬프를 제외하고 다른 모든 타임스탬프는 파일 및/또는 포함 디렉터리에 대한 쓰기 액세스 권한이 있는 사람이 업데이트할 수 있습니다.

답변2

소프트웨어가 배포용으로 패키지된 경우(Linux에서는 일반적으로 *.rpm또는 *.deb패키지로, 또는 *.tar.gz또는 같은 아카이브로 도 *.zip) 이러한 패키징 방법은 일반적으로 원래 시스템에서 파일의 수정 시간을 보존하고 설치 시 이를 재현합니다. 이러한 원래 수정 타임스탬프. 보관을 취소합니다.

때로는 배포용 소프트웨어 패키징 소프트웨어가 특정 버전의 소프트웨어에 속하는 모든 파일의 수정 타임스탬프를 알려진 값으로 조정하여 버그 보고서에서 파일 버전 식별을 단순화하거나 특정 버전의 출시 날짜를 간단히 반영하는 경우가 있습니다. .

당신은 기대할 수도 있습니다만들다타임스탬프도 보존되지만 생성 시간은 POSIX 사양의 필수 부분이 아닙니다. 일부 Unix 파일 시스템은 파일 생성 시간을 전혀 추적하지 않으므로 파일 내용의 수정 시간을 보존하는 것이 파일 보관 절차에서 가장 중요한 부분 중 하나로 간주됩니다. .

access 2024 (now)
modified 2022
changed 2023
created 2023

이 파일이 패키지에 속해 있다면 해당 파일은 개발자에 의해 마지막으로 수정되었거나 2022년 릴리스용으로 패키지되었을 것으로 예상됩니다. 수정 시간은 이를 반영합니다.

이는 2023년(생성 시간 및 메타데이터 변경 시간으로 표시됨)에 시스템에 설치되었습니다. 이 시점에서 설치 프로세스는 기술적으로 파일이 2022년 시스템에 존재하지 않더라도 해당 파일에 대한 원래 시스템 수정 시간인 2022년을 시스템에 재현합니다.

수정 시간 < 생성 시간이므로 파일 내용이 다른 시스템에서 생성된 후 귀하의 시스템으로 전송되었습니다.

생성 시간은 본질적으로 메타데이터 변경 시간과 동일하고 수정 시간은 생성 시간보다 작거나 같으므로 파일과 해당 메타데이터(소유권, 권한, 속성)가 어떤 경우에도 수정되지 않았음을 분명히 알 수 있습니다. 창조 이후의 방식. 시스템에 설치하십시오.

관련 정보