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 -9
29GB->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:
$