4GB보다 큰 gzip 파일은 얼마나 휴대 가능합니까?

4GB보다 큰 gzip 파일은 얼마나 휴대 가능합니까?

내 작업의 스냅샷을 백업하기 위해 tar -czf work.tgz work클라우드 스토리지에 저장할 수 있는 압축된 tar 파일을 생성하는 명령을 실행합니다. 그러나 방금 gzip의 크기 제한이 4GB이고 내 work.tgz파일이 4GB를 초과한다는 것을 알았습니다.

그럼에도 불구하고 현재 컴퓨터(Mac OS X 10.15.4 실행, gzip 버전은 Apple gzip 287.100.2)에서 gzip tar 파일을 생성하면 성공적으로 검색할 수 있습니다. 따라서 내 특별한 경우에는 gunzip이 4GB 이상에서 작동합니다. 하지만 저는 Mac OS X나 Linux, 그리고 미래에는 다른 시스템에서도 이러한 대용량 gzip 파일을 만들고 읽을 수 있기를 원합니다.

내 질문은: 어디에서나 대용량 파일을 압축 해제/총 압축할 수 있습니까? 즉, 4GB보다 큰 gzip 파일은 얼마나 이식성이 있습니까? Mac OS, Linux 또는 다른 운영 체제에서 생성해도 문제가 되나요?

온라인에서 읽은 일부 내용에 따르면 gzip은 더 큰 파일을 성공적으로 gzip/gunzip하지만 크기가 32비트 정수로 저장되므로 압축되지 않은 크기를 올바르게 기록하지 않습니다. 이것이 모든 것의 한계인가?

답변1

방금 gzip의 크기 제한이 4GB라는 것을 알았습니다.

보다 정확하게는 해당 gzip형식은 압축되지 않은 파일을 올바르게 저장할 수 없습니다.크기4GiB 이상, 압축되지 않은 크기의 하위 32비트를 저장하고 gzip -l이를 원본 데이터의 크기로 잘못 표시합니다. 결과적으로 gzip1.11 까지는 gzip -l원본 크기가 4GiB를 초과하는 압축 파일에 대해 올바른 크기가 표시되지 않습니다.

gzip그 외에는 그 자체로는 제한 이 없으며 gzip4GiB보다 큰 ped 파일은 이식 가능합니다. 형식은 다음과 같이 지정됩니다.RFC 1952그리고 이에 대한 지지가 널리 퍼져 있습니다.

제공된 정보에 대한 혼란gzip -l gzip1.12 에서 수정됨;gzip -l이제 저장된 크기를 표시하는 대신 데이터의 압축을 풀어 원본 데이터의 실제 크기를 확인합니다.

어디에서나 대용량 파일을 압축 해제/총 압축할 수 있나요?

tar대용량 파일을 처리할 수 있는 곳이라면 어디에서나 및 사양을 준수하는 구현을 사용할 수 있습니다 gunzip.

즉, 4GB보다 큰 gzip 파일은 얼마나 이식성이 있습니까?

형식 gzip자체는 이식 가능하며, gzip포함된 데이터 크기에 관계없이 파일도 이식 가능합니다.

Mac OS, Linux 또는 다른 운영 체제에서 생성해도 문제가 되나요?

아니요, gzip모든 플랫폼에서 생성된 파일은 필요한 기능(특히 이 질문의 맥락에서 대용량 파일을 저장하는 기능)을 사용하여 다른 플랫폼에서 압축을 풀 수 있습니다.

당신은 또한 볼 수 있습니다압축 유틸리티의 최대 파일 크기 제한 | Unix/Linux.

답변2

파일 시스템, 스토리지 시스템 및 암호화된 컨테이너 제한 외에도 파일 전송에 더 작은 청크를 사용하는 것이 더 나을 수 있습니다. 특히 병렬 업로드를 지원하지 않는 도구를 사용하고 중단된 전송을 다시 시작하는 경우에는 더욱 그렇습니다.

더 작은 청크로 이러한 문제를 모두 해결할 수 있으므로 일반적으로 어디에서나 2GB 청크를 목표로 합니다. 100GB 파일 대신 1 x 2GB 청크를 다시 처리해야 하는 경우 체크섬 오류를 처리하는 것이 좋습니다. Tar는 종종 여러 개의 "테이프"로 분할될 수 있습니다.

USB 스틱, 저장소 계정, 전송 소프트웨어를 포함한 전체 체인을 제어할 수 있다면 신경 쓸 필요가 없습니다(그러나 특히 긴급 상황에서 원활한 복구를 위해서는 더 많은 유연성을 갖는 것이 장점입니다).

관련 정보