본문 바로가기
Programming/C++

압축률 확인 gzip -l 결과값에 압축률(ratio) 마이너스 나오는 이유

by AUTORI 2023. 1. 10.

 

대용량 압축 파일을 전달받아 압축 해제하고 실제 압축 해제한 파일 사이즈와 확인하는 작업을 진행하였다.

 

test@test:~/user1/test$ ls -al
total 4198208
drwxr-xr-x 2 test user       4096 2023-01-10 12:22 .
drwxr-xr-x 7 test user       4096 2023-01-10 12:22 ..
-rw-r--r-- 1 test user 4298948939 2023-01-03 01:46 compressTest.tar.gz

 

ls -al 결과값으로  파일 사이즈는 4,298,948,939 약 4,099MB이다.

 

 

test@test:~/user1/test$ du -sb .
12028542437     .

 

실제 압축을 해제하고 du -sk 명령어를 통해 실제 파일 사이즈는 12,028,542,437 약 11,471MB이다. 대략적으로 계산해보면 tar.gz 파일의 압축률은 약 65% 나와야 한다.

 

test@test:~/user1/test$ gzip -l compressTest.tar.gz
         compressed        uncompressed  ratio uncompressed_name
         4298948939          3892359168 -10.4% compressTest.tar

 

gzip -l 명령어로 압축률을 확인해 보았다. compressed 항목은  ls -al 결과와 동일하다. 하지만 이상하게 uncompressed 값이 압축 파일의 size 보다 더 작게 나온다. 압축 비율도 마이너스로 나온다.

 

그 해답은 아래 stackoverflow에서 찾아볼 수 있다. gzip -l 명령어는 파일 크기가   2^32 까지 지원이 된다고 한다. 즉 압축 파일 크기가 4GB를 넘어가면 마이너스 값이 나올 수 있다. 

 

 

why am I get negative compression ratio for a gz file

I found an interesting thing about a gz file. The compression ration is negative. [root@pridns named]# ll dns-query.log-2022083103* -rw-r--r-- 1 named named 1.2G Aug 31 03:10 dns-query.log-20220831...

stackoverflow.com

 

 

 

댓글