圧縮コマンドにサイズ制限がありますか?

圧縮コマンドにサイズ制限がありますか?

このコマンドを実行した後に特定のサイズ制限がありますかcompress

私が知る限り、このコマンドはゼロバイトファイルでは機能しませんcompress。ところで、今日UNIXでコマンドを使用してバイトサイズが27バイトのファイルを圧縮しようとしましたが、圧縮されませんcompressでした。ファイルは変更されていません。

答え1

ファイルの内容によって異なります(エントロピー、約)。完全にランダムな内容が与えられると、compress実際にはファイルが大きくなり、ほとんどの実装では何も拒否されます(-vオプションは通常これを伝えます。)

私が持っている実装では、完全にゼロバイトを含むファイルは少なくとも8バイトに圧縮されます。圧縮ファイルの先頭のマジックナンバーとデフォルトの「これをN回繰り返す」コマンドが入力より長いサイズ制限のようです。

テキストなどのより有用な分散コンテンツを考慮すると大きく異なりますが、しきい値は最小数十バイトになります。 27バイトのテキストファイルを圧縮するつもりはなく、任意の27バイトのバイナリファイルを圧縮する可能性は少なくなります。

1もちろん技術的にはランダムなので...

答え2

呼ぶ

compress -f your_file_to_compress

compress行動が予測可能な方法で行動するように強制します。

これは非常に不快な機能です。compress時にはファイルを変更せずにランダムに残すことにしましたが、残念な副作用はファイルが元の名前を保持します.Z

私はこう言うほうがいいです。故意に比較する偶然。スクリプトでこれを呼び出しcompressてから、拡張子が.inファイルの存在を計算すると、.Z非常に不快な驚きを感じることがあります。

関連情報