压缩后是否有用于估计文件大小的实用程序?

时间:2014-11-13 19:10:45

标签: linux compression data-compression lossless-compression

我想估计文件,文件或文件目录压缩后的最终大小。我正在寻找一个可以估算/计算这个的程序或脚本。

有什么想法吗?

必须可以在命令行上访问此类工具(适用于Linux / Mac)。如果它适用于所有或大多数常用的无损压缩算法(gzbzip2zip,那将是最有用的。 。如果它列出了各种方法的压缩比(或等效使用,结果文件大小),则奖励积分。我完全相信这样的工具会在产生输出之前扫描文件,但是如果可能的话我想避免任何实际的压缩。

如果重要,我宁愿这是通用目的:

  • 它适用于任何类型的文件,包括易于压缩的ASCII文本文件,二进制数据以及介于两者之间的所有文件。 (当然,这很大程度上取决于压缩算法/工具。)
  • 它应该适用于各种压缩算法/工具

以下BASH脚本执行我想要的一种类压缩算法,但它不计算(我喜欢估计):

#!/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

我主要将它用于较大的文件(大于千兆字节),这就是为什么我只需要估算而不是实际压缩。

1 个答案:

答案 0 :(得分:1)

您可以压缩到像| wc这样的管道(您可以使用pipe(7) - s或fifo(7) - s,也许使用bash coprocesses),但您仍然需要压缩

(除非你对磁盘空间非常紧张,否则我认为这不值得痛苦)

请注意,并非每个文件都是真正可压缩的。