나는 이것을 가지고있다:
-rw-r--r-- 1 user user 36166999908 Jan 29 2022 tmp.archive.part1.zip
-rw-r--r-- 1 user user 5579574562 Jan 29 2022 tmp.archive.part2.zip
-rw-r--r-- 1 user user 5097536636 Jan 29 2022 tmp.archive.part3.zip
-rw-r--r-- 1 user user 10612382236 Dec 29 02:19 tmp.archive.part4.zip
G M k
그래서 이 ZIP 파일의 크기는 각각 36GB, 5, 5, 10GB인데, 모두 한 곳에서 읽은 최대치인 2^32 4GB를 초과합니다. 그들은 "zip64"가 2^64 크기를 허용한다고 말하지만 내가 무엇을 가지고 있는지 모르겠습니다. zip -h는 다음과 같이 말합니다.
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
Zip 3.0 (July 5th 2008). Usage: ...
문서에 따르면 다음과 같습니다.
file tmp.archive.part1.zip
tmp.archive.part1.zip: Zip archive data, at least v1.0 to extract
그게 어떻게 가능합니까?
나는 zipmerge가 이 파일들에 대해 전혀 작동하지 않는다는 것을 알았습니다.
내 문제는 이러한 zip 파일을 실제로 추출하지 않고(가능한 경우) 하나로 병합해야 한다는 것입니다(시스템에 공간 및 파일 수 할당량이 없음). 누군가가 여기에 다른 질문에 게시한 zip2tar Python 스크립트를 시도했지만 그것도 실패했습니다. 그들은 파일이 zip 파일이 아니거나 코어 덤프와 충돌할 뿐이라고 말하면서 파일을 좋아하지 않습니다.
제가 보여드린 것처럼 이러한 zip 파일이 zip 3.0으로 생성된 경우 더 나은 zipmerge 또는 크기로 인해 차단되지 않는 것이 있습니까?
답변1
"ZIP" 아카이브에는 여러 유형이 있기 때문입니다.
PKZIP의 첫 번째 버전에 의해 구현된 원래 ZIP 형식에는 아카이브 크기가 4GiB로 제한되었습니다(그리고 아카이브 멤버 크기(압축 및 비압축)에 대한 해당 제한도 있었습니다). 그러나 버전 4.5 형식에서는 ZIP64 확장자가 도입되어 파일 헤더 및 아카이브 항목의 관련 필드를 아카이브의 다른 곳에 저장된 보조 필드로 이동하고 아카이브 구성원 수를 조정하여 이 제한을 16EiB로 확장했습니다. 비슷한 방식으로(클래식 ZIP은 65535명의 아카이브 구성원으로 제한됩니다).
하지만, 도구가 실제로 이러한 확장 필드를 찾지 않는 한 해당 확장 필드는 무시되고 도구는 제대로 작동하지 않습니다. 이는 ZIP64 아카이브가 아직 남아 있기 때문입니다.기술적으로구성원 크기를 확인하지 않는 한 유효한 "클래식" ZIP 아카이브입니다(이는 이전 버전과의 호환성이 때때로 나쁜 이유를 보여주는 좋은 예입니다).
실제로 다음이 있다는 점에 주목할 가치가 있습니다.많은ZIP 형식의 기타 잠재적인 비호환성. 특히 주목해야 할 점은 ZIP 아카이브와 함께 사용할 수 있는 호환되지 않는 암호화 메커니즘이 여러 개 있고 거의 12가지의 서로 다른 압축 알고리즘이 있다는 점입니다. 이 알고리즘은 모두 대부분의 구현에서 지원되지 않습니다. , 'Deflate' 또는 'Deflate64' 및 그예거의 모든 것이 지원됩니다.)
답변2
Info-ZIP 3.0은 4GB 제한을 높였고, ZIP64를 지원하는 최초의 버전이었으며, 거의 15년이 된 것을 볼 수 있듯이 현재 공식적으로 지원되는 최신 버전입니다.
답변3
흥미로운 질문입니다!
간단한 웹 검색으로 이 흥미로운 문서를 찾을 수 있습니다.[1];
사실, 그것은 단지 ZIP 개정판이 아닙니다.
솔직히 말해서 전문가가 아니기 때문에 이 정보는 이제 잊혀지거나 묻혀 있다고 추측할 수 있습니다.단순한: 원래 ZIP 개정판은 오래된(현재의) 장치/소프트웨어용으로 제안되고 설계되었지만 이제는 컴퓨터 과학/장치의 발전으로 인해 다른(이전) 개정판을 처리할 필요가 없습니다.
나는 이 희귀한 정보를 발견할 수 있는 도구/명령이 없으면 바이너리 구조를 직접 수동으로 마이닝하는 것이 유일한 (그리고 가장 어려운) 방법이라고 생각합니다.[2]
도구의 존재로 돌아가서 나는 발견했다.zipdetails
[삼]perl
, 이는 (반직관적으로) 귀하에게 도움이 되거나 최소한 귀하의 작업을 용이하게 할 수 있는 패키지의 일부입니다 !
[1] https://peazip.github.io/rar-zip-file-format-size-limitations.html
[2] https://en.wikipedia.org/wiki/ZIP_(file_format)#구조
[삼] https://perldoc.perl.org/zipdetails