1

圧縮後のファイル、ファイル、またはファイルのディレクトリの最終的なサイズを見積もりたいと思います。これを推定/計算できるプログラムまたはスクリプトを探しています。

何か案は?

このようなツールは、コマンド ラインからアクセスできる必要があります (Linux/Mac の場合)。gz一般的に使用されるロスレス圧縮アルゴリズム ( 、bzip2zipなど)のすべてまたはほとんどで動作する場合、最も便利ですさまざまな方法の圧縮率(または同等の用途の結果のファイルサイズ)がリストされていれば、ボーナスポイントです。このようなツールは、出力を生成する前にファイルをスキャンすることを十分に期待していますが、可能であれば、実際の圧縮は避けたいと考えています。

問題がある場合は、これを汎用にすることをお勧めします。

  • 簡単に圧縮できるASCIIテキストファイル、バイナリデータ、およびその間のすべてを含む、あらゆる種類のファイルでうまく機能するはずです。(もちろん、これは圧縮アルゴリズム/ツールに大きく依存します。)
  • さまざまな圧縮アルゴリズム/ツールで動作するはずです

次の BASH スクリプトは、1種類の圧縮アルゴリズムに対して必要なことを実行しますが、カウントされません (見積もりが必要です)。

#!/bin/bash

FILES_TO_COMPRESS=`ls ./*txt`
TEMP_FILE=myData.tgz
tar -zcvf $TEMP_FILE $FILES_TO_COMPRESS
du -h $TEMP_FILE | awk '{print $1}'
rm -f $TEMP_FILE

私は主にこれをより大きなファイル (ギガバイトより大きい) に使用します。そのため、実際の圧縮ではなく、推定値のみが必要です。

4

1 に答える 1

2

次のようなパイプに圧縮する| wcこともできますが(おそらく bash coprocessesでpipe(7) -s またはfifo(7) -s を使用できます)、それでも圧縮する必要があります。

(ディスク容量が非常に限られている場合を除き、苦労する価値はないと思います)

すべてのファイルが本当に圧縮可能であるとは限らないことに注意してください。

于 2014-11-13T19:17:02.087 に答える