7-Zip을 사용하여 여러 .ZIP 파일로 분할


12

100GB 폴더가 있고 ZIP을 분할하는 경우 각각 1GB의 100 .ZIP 파일 또는 10GB의 10 .ZIP 파일로 분할하면 사용되는 디스크 공간에 차이가 있습니까?

각각 1GB의 100.ZIP 파일이 각각 10GB의 10.ZIP 파일보다 많은 공간을 차지합니까?


그리고 당신은 이유를 찾을 수 없습니다?
Dave

5
왜 그냥 시도해 볼 수 없습니까?
Peter Mortensen

1
각 독립형 ZIP 파일에는 약간의 오버 헤드가 있습니다. 그러나 ZIP 파일을 다시 조립할 수있는 조각으로자를 수 있습니다. 이러한 부분은 각각에 ZIP 오버 헤드가 없으며 섹터 또는 블록 경계에서 분할하면 낭비되는 공간이 없습니다.
fixer1234 2

답변:


19

알아 보자!

100MB 파일 (27 개) :

7z a -tzip -v100M ./100m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./100m/
2677884 ./100m/

10MB 파일 (262 개) :

7z a -tzip -v10M ./10m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./10m/
2677908 ./10m

결과 : 10MB 분할 아카이브는 24KB를 추가로 차지합니다. 예, 차이가 있습니다. 100 1GB 파일은 10 10GB 파일보다 더 많은 공간을 차지합니다.

그래도 그 차이는 무시할 만하다. 나는 당신에게 더 편리한 어느 쪽이든 갈 것입니다.


4
du기본적으로 크기를 바이트 단위로 출력하지 않습니다 (270M 파일이 2,677,908 바이트로 바뀌지 않는 한). 실제 데이터 크기와 다를 수있는 디스크의 파일 크기를 표시합니다 (다른 파일 시스템에 업로드하거나 저장하는 데 적용 가능)
Xen2050

맞습니다. 실제로 KB로 출력됩니다. 이 불일치를 수정하기 위해 답변을 편집했습니다. 원본 파일은 Kali Linux ISO이며 ~ 2.6GB입니다. 디스크 크기와 실제 데이터 크기에 대한 좋은 지적이 있습니다. 디스크 크기는 추가 파일이있는 오버 헤드를 설명하기 때문에 특히 디스크 크기에 대해 생각하고 있었지만 귀하의 내용에 따라 다를 수 있습니다. 실제로 아카이브 작업을 수행합니다.
Layne Bernardo

죄송합니다. 실행 문자열을 다시 확인하는 동안 귀하의 유사한 답변과 교차했습니다.
AFH

Zip 파일 최대 크기는 4GB입니다.
pbies

1
그래, 내가 백분율 계산을 귀찮게하지 않은 이유입니다. 특히 파일 시스템의 차이점을 고려할 때 원본 파일 크기의 일정한 비율로 작동하지 않는다고 생각합니다.
Layne Bernardo

15

모든 파일은 파일 끝 이후에 사용되지 않은 논리 섹터 공간으로 인해 파일 시스템 오버 헤드가 발생하지만 분할 크기가 논리 섹터 크기의 배수 인 경우 제거됩니다 (아래 예제에서는 반드시 그렇지는 않습니다).

추가 디렉토리 항목에 사용 된 추가 바이트가있을 수 있지만 디렉토리가 추가 논리 섹터를 점유하지 않는 한 이는 표시되지 않습니다.

분할 파일의 내용은 분할 크기가 동일한 이진 분할 프로그램으로 만든 파일과 동일합니다.

Linux에서 7 + MB 파일의 GUI 버전을 사용하여 7-Zip ( File.7z.00?) 으로 1MB 크기의 8 개의 분할 파일을 제공 한 다음 단일 전체 아카이브 ( Full.7z) 를 작성하여 다음 과 같이 분할했습니다.

7z -v1000000 a File;                                         # Create split volumes File.7z.00?
7z a Full File;                                              # Create full archive Full.7z
split -b 1000000 -a 3 --numeric-suffixes=1 Full.7z Full.7z.; # Split full archive into Full.7z.00?
for f in {001..008}; do cmp Full.7z.$f File.7z.$f; done;     # Compare splits with 7z volumes

다른 OS에서 테스트하려면 적절한 스플리터 프로그램을 다운로드하거나 작성해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.