tar.gz는 대용량 파일에 대해 효율적인 파일 압축을 수행합니까?

tar.gz는 대용량 파일에 대해 효율적인 파일 압축을 수행합니까?

tar~29GB 파일을 크게 압축하고 터미널에서 다음과 같은 명령을 사용하고 싶습니다 .

 tar cvzf file.tar.gz /path/to/directory

~26GB로 압축해서 인터넷에서 최대 압축률을 찾아보고 다음을 수행했습니다.

 export GZIP=-9
 env GZIP=-9 tar cvzf file.tar.gz /path/to/directory

그러나 tar.gz 파일 크기는 속성에 약 26GB로 표시됩니다. 이번에는 10GB 정도로 압축될 것 같아요. 여기서 뭔가 빠졌나요?

답변1

나는 기본 내장 압축 비율을 절대 사용하지 않을 것이며, 언패커가 수백 MB의 RAM을 xz수용 할 수 있다는 것을 안다면 gzip.

그래서 내 제안은 tar압축되지 않은 출력을 파이프하는 것 입니다 xz -9.

압축할 때 더 많은 CPU 시간이 필요하지만 압축을 풀 때 CPU 시간이 덜 걸립니다 gzip. 텍스트 파일의 경우 압축이 25-30% 향상됩니다.

답변2

네, 그렇습니다.

tar에서 제공하는 다른 압축 형식을 사용해 볼 수도 있습니다. 내 Linux 시스템에서는 GNU tar가 이러한 다양성을 제공합니다. 즉, gzip -929GB->26GB만 달성한다면 다른 압축 형식은 원하는 29GB->10GB를 달성할 가능성이 없습니다.

$ tar --help|grep -A16 Compression
 Compression options:

  -a, --auto-compress        use archive suffix to determine the compression
                             program
  -I, --use-compress-program=PROG
                             filter through PROG (must accept -d)
  -j, --bzip2                filter the archive through bzip2
  -J, --xz                   filter the archive through xz
      --lzip                 filter the archive through lzip
      --lzma                 filter the archive through lzma
      --lzop
      --no-auto-compress     do not use archive suffix to determine the
                             compression program
  -z, --gzip, --gunzip, --ungzip   filter the archive through gzip
  -Z, --compress, --uncompress   filter the archive through compress

 Local file selection:
$

관련 정보