최고의 압축 방법?


53

16GB 폴더를 압축하고 싶지만 가장 좋은 방법은 무엇입니까? tar.gz? tar.bz2 rar? 7z? 방법으로 처음 압축 한 다음 압축 된 아카이브를 새 폴더로 복사 한 다음 다른 방법으로 다시 압축하면 아카이브가 더 작아 집니까? DVD에 맞출 필요가 있습니다 (출력은 8.5GB, 기억하지 마십시오). "4370MB"를 넣으면 압축 파일이 2.5GB 부분이됩니다.

BTW, 우분투의 기본 압축 방법은 무엇입니까?

답변:


70

기본값은 gz입니다. 7z그래도 최고의 결과를 얻습니다 .

1.4Gb virtualbox 컨테이너의 결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

최상의 압축 – 크기 (MB) :

7z 493
rar 523
bz2 592
lzh 607
gz 614
Z 614
지퍼 614
.arj 615
이조 737
동물원 890

출처

여기에 이미지 설명을 입력하십시오

설치

 sudo apt-get install p7zip-full

감사합니다. Software Center를 통해 이미 7z 및 rar를 설치했습니다. 7z로 시험해 볼게요.
Amanda

1
이 결과는 어디에서 오는가? 모든 알고리즘에서 압축 비율과 속도는 압축하려는 대상에 따라 크게 달라집니다. 일부 데이터를 압축 /dev/urandom해보십시오. 각 시도마다 다른 결과가 나타납니다. 또는 시도 /dev/zero: bzip2가 승자입니다 (비율).
Andrea Corbellini

1
@AndreaCorbellini 링크가 답변에 있으므로 클릭하십시오!? 내가 말했듯이 1.4 가상 상자 컨테이너를 기반으로합니다. 압축은 파일의 종류에 따라 크게 좌우되지만 몇 년의 경험을 통해 7z는 내가 갖고있는 파일 (대부분 소프트웨어 및 이진 데이터 파일)에
비해

1
@Rinzwind : 정말 죄송합니다 . 소스 링크 가 보이지 않습니다 .
Andrea Corbellini

1
@AndreaCorbellini 괜찮습니다;) Amanda가 결과를 다시보고하기를 바랍니다 : +
Rinzwind

14

이 질문은 매우 오래되었지만 누군가이 솔루션이 유용하다고 생각할 수도 있습니다.

rzip이후에를 사용하십시오 tar. 먼저 사전 방법을 사용하여 900MB의 큰 데이터 블록을 압축 한 다음 정리 된 데이터를로 넘깁니다 bzip2. 다른 강력한 압축 도구 ( bzip2, lzma) 보다 훨씬 빠르며 일부 파일은 bzip2또는 보다 낫게 압축 lzma됩니다.

예, gzLinux의 기본 압축 도구입니다. 그것은 빠르며, 나이에도 불구하고 소스 코드와 같은 텍스트 파일을 압축하는 데 여전히 매우 좋은 결과를 제공합니다. 다른 표준 도구는 bzip2속도가 훨씬 느리지 만입니다.

추가 : lrzip은 최신 버전이며 rzip의 원칙을 확장합니다. 또한 무제한 블록 크기와 압축 방법 (LZMA, Bzip2, Gzip, LZO, ZPAQ 또는 없음)을 선택할 수 있습니다. LZMA가 표준입니다. 백업 또는 다른 Linux / BSD 사용자와 많은 데이터를 공유하는 경우 매우 유용 할 수 있습니다.


900 kB 블록을 의미한다고 생각합니까? 900MB는 약간 클 것입니다 ...
바이트 사령관

1
실제로는 900MB입니다. 참조 en.wikipedia.org/wiki/Rzip을
user258532

2

나는을 선택합니다 LZMA. 바이트 오버 헤드가 가장 작고 압축률이 높습니다. ZIP과 LZMA의 비교 : seq.txtPHP 코드로 두 개의 파일 을 생성했습니다.

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

0..9 자리 ~ 1Mb의 데이터 rnd.txt와 PHP 코드 의 반복 블록을 보유

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

0..9 자리 ~ 1Mb 데이터의 임의 블록을 보유합니다.

압축 결과 :

  • seq.txt, rnd.txt-1100000 바이트
  • seq.txt.zip-2502 바이트
  • rnd.txt.zip-515957 바이트
  • seq.txt.lzma-257 바이트
  • rnd.txt.lzma-484939 바이트

압축비 :

  • ZIP-> "seq.txt"-> 99.772 %
  • ZIP-> "rnd.txt"-> 53.094 %
  • LZMA-> "seq.txt"-> 99.976 %
  • LZMA-> "rnd.txt"-> 55.914 %

따라서 LZMA는 ZIP보다 순차적 데이터를 0.2 % 더 효과적으로 압축
하고 ZIP보다 무작위 데이터를 2.8 % 더 효과적으로 압축했습니다.

확실히 LZMA가 이겼습니다!

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