현재 onedrive에서 생성된 zip 파일은 대부분의 소프트웨어에 의해 손상됩니다.
여기서 볼 수 있듯이 해결책은 16진수 편집기를 사용하는 것입니다. 대용량 파일이 많아서 bash 스크립트 솔루션을 원합니다... 가능할까요?
다음은 무료로 사용할 수 있는 테스트 파일입니다.
답변1
질문링크에 언급된 질문은,Microsoft OneDrive는 크고 손상된 ZIP 파일을 내보냅니까?Total Number of Disks
, OneDrive에서 생성된 4Gig보다 큰 zip 파일에 ZIP64에 잘못된 필드가 있는 문제를 나타냅니다 End Central Directory Locator
. 이 필드의 값은 1이어야 하지만 OneDrive(Windows에서 zip으로 보내기)는 이를 0으로 설정합니다. 이로 인해 표준 압축 해제 유틸리티를 사용하여 이러한 파일을 처리하는 것이 어렵거나 불가능해집니다.
이러한 파일 중 하나에 대해 실행하면 unzip
다음 출력이 생성됩니다.
$ unzip -l onedrive-zip-test-zeros.zip
Archive: onedrive-zip-test-zeros.zip
warning [onedrive-zip-test-zeros.zip]: 1073742329 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [onedrive-zip-test-zeros.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
원래 질문의 링크는 16진수 파일 편집기를 사용하여 문제를 수동으로 해결하는 방법을 보여줍니다. 또는 다음을 참조하세요.OneDrive-Zip 복구이러한 OneDrive zip 파일을 복구하는 스크립트입니다. 수행하는 작업은 값이 0으로 잘못 설정되었을 때 값을 1로 설정하는 것뿐입니다.
사용법은
fix-onedrive-zip file1.zip
이 경우
$./fix-onedrive-zip onedrive-zip-test-zeros.zip
Checking 'onedrive-zip-test-zeros.zip'
Updated 'onedrive-zip-test-zeros.zip'
zip 파일을 읽을 수 있는지 확인하십시오.
$ unzip -l onedrive-zip-test-zeros.zip
Archive: onedrive-zip-test-zeros.zip
Length Date Time Name
--------- ---------- ----- ----
1073741824 2020-03-18 14:48 onedrive-zip-test-zeros/file01.dat
1073741824 2020-03-18 14:51 onedrive-zip-test-zeros/file02.dat
1073741824 2020-03-18 14:54 onedrive-zip-test-zeros/file03.dat
1073741824 2020-03-18 14:57 onedrive-zip-test-zeros/file04.dat
1073741824 2020-03-18 15:01 onedrive-zip-test-zeros/file05.dat
--------- -------
5368709120 5 files