7 Zip을 사용하여 파일을 압축 할 때 사용하는 가장 좋은 옵션은 무엇입니까? 제한이 있으므로 여전히 zip

종종 로그 파일을 수집하여 중앙 서버 (다른 회사 소유)에 업로드해야합니다. 중앙 서버에는 파일의 크기 제한이 있으므로 여전히 zip 형식으로 가능한 가장 작은 파일을 만들려고합니다.

필요한 파일 크기가 작은 경우 텍스트 파일을 zip 형식으로 압축 할 때 사용하는 가장 좋은 설정은 무엇입니까?

7zip 옵션

나는 명백하고 선택된 초 압축을 해왔고, LZMA가 수축보다 더 잘 작동한다는 것을 알았지 만, 그것들을 모두 테스트하기에는 너무 많은 다른 옵션 순열이 있습니다.



답변

7-Zip이 생성 할 수있는 가장 작은 표준 ZIP 파일을 만들려면 다음을 시도하십시오.

7z a -mm=Deflate -mfb=258 -mpass=15 -r foo.zip C:\Path\To\Files\*

출처 : 최고의 표준 ZIP 압축을 어떻게 얻을 수 있습니까?

그렇지 않으면 ZIP 표준에 신경 쓰지 않으면 다음과 같은 울트라 설정을 사용하십시오.

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1

어느 것이 :

-t7z   7z archive

-m0=lzma
       lzma method

-mx=9  level of compression = 9 (Ultra)

-mfb=64
       number of fast bytes for LZMA = 64
-md=32m
       dictionary size = 32 megabytes

-ms=on solid archive = on


답변

단지 .zip이 아닌 .7z 형식을 사용할 수 있다면 PPMD 를 다음 옵션과 함께 사용 하고 압축 수준에서 설정 한대로 다른 모든 것을 그대로 둡니다.

  • 보관 형식 : 7z
  • 압축 방법 : PPMD
  • 압축 수준 : 울트라

이 옵션을 사용하여 서버 / 텍스트 로그 (60MB +)를 정기적으로 압축하며 일반적으로 원래 크기의 1-2 % 로 나옵니다 .


답변

우분투 서버 14.04.03의 db.fdb 1,2 GB (1236598784 B)와 VM의 p7zip [64] 9.20을 비교합니다.

1. 7z a -mx=9 1.7z db.fdb
2. 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on 2.7z db.fdb
3. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on 3.7z db.fdb
4. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on -pass=15 4.7z db.fdb
5. 7z a -mx=9 -mmt=on 5.7z db.fdb
6. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on -mmt=on 6.7z db.fdb

결과를 얻습니다.

1.7z 96 MB (100108731 B) with 6' 25"
2.7z 95 MB ( 99520375 B) with 5' 18"
3.7z 93 MB ( 97512311 B) with 9' 19"
4.7z 93 MB ( 97512345 B) with 9' 40"
5.7z 96 MB (100108731 B) with 5' 26"
6.7z 93 MB ( 97512311 B) with 9' 09"

나는 두 번째 방법이 가장 잘 작동한다고 생각합니다. 그러나 최상의 “보기”와 기억하기 쉬운 방법은 작은 파일과 최대 압축 지점이없는 첫 번째 방법입니다. 2와 3 방법 사이에서 우리는 더 작은 7z를 얻지 않지만 압축에 거의 2 시간 더 지불합니다. 누구나 스스로 결정합니다.


답변

많은 실험을 한 후 자세한 7zip 문서를 파고 고급 LZMA2 매개 변수와 관련된 7z 소스 코드 중 일부를 읽은 다음은 더 나은 방법입니다. 여기에 게시되거나 7z 맨 페이지에 게시 된 이전에 승인 된 솔루션보다 1GB 실제 테스트 파일 이 2-4 배 이상 향상 되었습니다.

7z a -t7z -mx=9 -mfb=273 -ms -md=31 -myx=9 -mtm=- -mmt -mmtf -md=1536m -mmf=bt3 -mmc=10000 -mpb=0 -mlc=0 archive.7z inputfileordir

LZMA2 압축은 여기에서 가정되지만, 또는와 같은 고급 LZMA2 옵션 -m0=LZMA2:27또는 다음 -m0=LZMA2:d25과 같은 매개 변수 배열을 전달하면 7zip에서 더 나은 성능을 얻을 수 있습니다

-m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1

이러한 매개 변수는 테스트 한 7z 버전에서 존중되지 않는 것 같지만 7z 코드를 추가로 탐색하거나 패치하여 올바르게 구문 분석 할 수 있습니다. 또는 작동해야하며 테스트 된 빌드에서 손상되었을 수도 있습니다.


답변

“split to volume, bytes”필드를 서버의 최대 허용 파일 크기로 설정하십시오 (바이트 단위는 “KB”및 “MB”와 같은 일반적인 약어를 허용하는 것처럼 보입니다). zip 파일 이이 크기를 초과하면 7-zip은 자동으로 여러 파일로 분할합니다 (예 : integration_serviceLog.zip.001 , integration_serviceLog.zip.002 등) (PK Zip은이 파일을 사용하여 zip 파일을 여러 개의 플로피 디스크) 압축을 풀려면 모든 파일이 있어야합니다. 한 파일에 가장 적합한 파일이 다른 파일에 대해 다를 수 있으므로 필요할 때마다이 과정을 거치지 않아도되기 때문에 특정 파일 세트에 사용할 절대 최고의 압축 설정에 대해 걱정하는 대신 사용하십시오. 복사 로그.


답변