분할된 파일을 원본 압축 파일과 병합

분할된 파일을 원본 압축 파일과 병합

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

관련 정보