Zip
Command to package and compress (archive) files.
How to use
Flags
-
-r: 서브디렉터리를 포함하여 압축한다. -
-F: 한글파일을 포함하는 zip 압축. -
-e: 암호를 설정한다.
Create a Zip File
To create a zip file, enter:
To include the contents of a directory in a zip archive, enter:
깨진 Zip 파일 복구
Linux 환경에서는 zip 명령어의 -FF 옵션을 사용해 볼 수 있습니다.
정상 복구 되었을 때 zip64 관련 문제점: 출력 분석
일반적인 핵심은 마지막 부분입니다:
Central Directory found...
Zip64 EOCDR found ( 1 12679424190)...
Zip64 EOCDL found ( 1 12679424246)...
EOCDR found ( 1 12679424266)...
원인 분석: 이 ZIP은 약 ~12.7GB (12,679,424,266 bytes)로, 표준 ZIP의 4GB 한계를 초과하여 Zip64 확장 포맷을 사용합니다. 문제는 높은 확률로 다음 중 하나였을 겁니다:
- Zip64 Central Directory 손상/불일치 — 아카이브가 Zip64 EOCDR(End of Central Directory Record)을 사용하는데, 이 레코드의 오프셋이나 크기 정보가 실제 데이터와 맞지 않았을 가능성. Zenodo에서 다운로드 중 일부 바이트가 누락/변경되면 흔히 발생합니다.
- 불완전한 다운로드 — 12.7GB 파일이다 보니 네트워크 중단으로 파일 끝부분이 잘렸거나, Central Directory가 올바르게 기록되지 않았을 수 있습니다.
- Zip64 호환성 문제 — 아카이브를 만든 도구와 읽는 도구 간의 Zip64 구현 차이.
zip -FF가 한 일은 "Central Directory" 에 의존하지 않고 파일 내의 "Local File Header (PK\x03\x04)"를 하나씩 스캔하면서 아카이브를 재구성한 것입니다. 모든 엔트리가 copying:으로 정상 처리되었고 에러 메시지가 없으니, "recovered.zip"은 정상적으로 사용 가능할 겁니다.
unzip -t recovered.zip 으로 무결성 검증해보시면 확실합니다.
See also
- unzip
- tar
- lz4
- lzo
- Unblob - 다양한 포맷에서 파일을 추출해주는 도구
- Ouch - 통합 압축 도우미 CLI
- pigz - gzip 의 병렬 구현체 오픈소스
- Zip bomb (Information Security)
- OpenZL - 파일 포맷 인식이 가능한 오픈소스 압축 프레임워크