이전 버전을 사용하여 ncompress
백업 파일을 만들고 있습니다. 내가 본 것은 놀라웠습니다.
[root@centos6 home]# ll -l -b mytest*
-rw-r--r--. 1 root root 1073741824 Mar 8 13:41 mytest.iso
-rw-r--r--. 1 root root 88099 Mar 9 10:26 mytest.iso.bak.Z
이것은 내가 사용하는 명령입니다:
compress -c mytest.iso>mytest.iso.bak.Z
mytest.iso
(실제로는 centos6.8-livecd.iso) 크기가 1073741824(1.0G)에서 88099(87K)로 변경되었습니다.
하지만 내가 사용할 때 :
tar -cvf mytest.iso.tar.gz mytest.iso
tar.gz 파일의 크기는 크게 변경되지 않았습니다.
-rw-r--r--. 1 root root 1073745920 Mar 9 10:43 mytest.tar.gz
이게 정상인가요? iso 파일의 압축을 풀면 잘 작동됩니다.
답변1
압축 알고리즘은 압축하는 데이터의 속성에 따라 압축 비율이 다릅니다. 예를 들어:
$ dd if=/dev/zero of=test.img bs=1m count=1024
$ compress -c test.img > test.img.Z
$ gzip -c test.img > test.img.gz
$ wc -c test.img test.img.gz test.img.Z
1073741824 test.img
4685486 test.img.gz
84781 test.img.Z
1078512091 total
이 알고리즘의 가장 좋은 경우는 아마도 대부분 반복되는 0으로 구성된 파일일 것입니다. 비슷한 압축률을 얻고 파일 크기가 너무 크기 때문에(1GB) 이미지가 필요한 것보다 훨씬 크고 중복 데이터로 채워질 가능성이 높습니다.
물론 , gzip
, compress
및 bzip2
기타 파일은 모두 특정 파일에 대해 서로 다른 압축 비율을 갖습니다. 이것이 바로 많은 대규모 오픈 소스 프로젝트가 사용자가 압축 해제 유틸리티가 있는 가장 작은 파일을 다운로드할 수 있도록 다양한 알고리즘으로 압축된 여러 다운로드를 제공하는 이유입니다.