以前のバージョンを使用して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
このアルゴリズムの最良のケースは、おそらくほとんど繰り返されるゼロで構成されるファイルです。同様の圧縮率が得られ、ファイルサイズが大きすぎるため(1 GB)、画像が必要なものよりはるかに大きく、冗長データで埋められる可能性が高くなります。
もちろん、、、gzip
およびcompress
その他bzip2
のファイルはすべて、特定のファイルに対して異なる圧縮率を持ちます。これは、多くの大規模なオープンソースプロジェクトが、ユーザーが解凍ユーティリティを使用して最小のファイルをダウンロードできるように、さまざまなアルゴリズムで圧縮された複数のダウンロードを提供する理由です。