Ubuntu 22.04에서 이 두 가지 방법으로 인해 archive_tgz sha256이 다른 것으로 나타났습니다.
tar czf /a/archive_tgz .
tar czf /dev/stdout . | split -d -b 200M - /a/archive. && cat /a/archive.* > /a/archive_tgz
이것이 정상입니까, 아니면 파일의 블록 크기와 관련이 있습니까? 차이점은 무엇입니까?
답변1
차이점은 수정 시간의 .
변경 에 있습니다.tar 파일에 포함되어 있습니다.( tar czf archive.tgz .
갱신 .
).
tar czf /dev/stdout . | sha256sum
그리고
tar czf archive.tgz .
sha256sum archive.tgz
다른 해시가 제공되었습니다(none split
). 또한 경고합니다 tar: .: file changed as we read it
.
다른 디렉터리에 쓰면 .
수정 시간이 변경되지 않으므로 동일한 해시 값이 제공됩니다.
tar czf ../archive.tgz .
sha256sum ../archive.tgz
split
해시를 비교하여 이것이 문제가 아닌지 확인할 수도 있습니다 .
tar czf single-archive.tgz .
split -d -b 200M - single-archive.tgz archive. && cat archive.* >archive-combined.tgz
md5sum single-archive.tgz
md5sum archive-combined.tgz