为啥我压缩了文件与压缩前的大小差不多?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我压缩了文件与压缩前的大小差不多?相关的知识,希望对你有一定的参考价值。

一般winRAR压缩可以自己配置一个较高的压缩比率。
1、首先你把要压缩的文件放在一个文件夹,点右键选择“添加到压缩文件”
2、在“常规”选项是的“压缩方式”选“最好”,并勾选“压缩选项”中的“创建固实压缩文件”。
3、点击“高级”选项:点击压缩。里面有“文本压缩”、“音频压缩”、“真彩压缩”三项。这个指的就是你压缩的文件是属于哪种类型?!!比如你要压缩的文件是文本类就选“文本压缩”类中的“强制”(建议),然后右边的预测尽量调高(最高63),内存使用是根据你的电脑的物理内存来设置的,设值越高,,压缩比越大。。但要注意的是:你如果压缩时用的是128内存。。在解压缩的时候机器也一定要有最少128内存或是更多。。。
其它“音频压缩”(音频应该会有所损坏)及“真彩压缩”类型差不多。。
最后就是“常规压缩”选择的字典大小用最高的4096。点击确定就可以完成压缩。
如果你想压缩比更高些,,就需要耗费点时间了。。等着吧。。
参考技术A 楼上的说的前面是对了!但是最后一句不对!压缩必然比本来文件要小!绝对不可能压缩后比原来的大!否则那款软件就是不合格的软件了!!!!至于压缩大小问题是文件本身的原因,你压缩的文件本身就是压缩过的文件,再怎么压缩也不会有太大的变化~~~

使用“tar czf”和“tar + gzip”进行组合和压缩。两种情况下的结果文件都是 packname.tar.gz 但为啥大小不同?

【中文标题】使用“tar czf”和“tar + gzip”进行组合和压缩。两种情况下的结果文件都是 packname.tar.gz 但为啥大小不同?【英文标题】:Combining and compressing using "tar czf" and "tar + gzip". The resultant file in both cases is packname.tar.gz but why sizes are different?使用“tar czf”和“tar + gzip”进行组合和压缩。两种情况下的结果文件都是 packname.tar.gz 但为什么大小不同? 【发布时间】:2020-01-28 11:31:40 【问题描述】:

共有三个文本文件。 test1、test2 和 test3 的文件大小为: 测试1 - 121 B 测试2 - 4 B 测试3 - 26 B 我正在尝试使用不同的方法组合和压缩这些文件。 方法-A 使用 tar 合并文件,然后使用 gzip 对其进行压缩。 $tar cf testpack1.tar test1 test2 test3 $gzip testpack1.tar 输出为 testpack1.tar.gz,大小为 276 BMethod-B 使用 tar 合并和压缩文件。 $tar czf testpack2.tar.gz test1 test2 test3 输出为大小为 262 B 的 testpack2.tar.gz 为什么两个文件的大小不同? B 表示字节。

【问题讨论】:

【参考方案1】:

如果您解压缩步骤 B 创建的存档,我敢打赌它将是 10240 字节。大小差异的原因是 tar 会将压缩存档与块大小对齐(使用零字符),但不会对齐未压缩存档。以下是 GNU tar 文档的摘录:

-b blocks
--blocking-factor=blocks 
Set record size to blocks * 512 bytes. 
This option is used to specify a blocking factor for the archive. When
reading or writing the archive, tar, will do reads and writes of the
archive in records of block*512 bytes. This is true even when the
archive is compressed. Some devices requires that all write operations
be a multiple of a certain size, and so, tar pads the archive out to
the next record boundary. The default blocking factor is set when tar
is compiled, and is typically 20. Blocking factors larger than 20
cannot be read by very old versions of tar, or by some newer versions
of tar running on old machines with small address spaces. With a
magnetic tape, larger records give faster throughput and fit more data
on a tape (because there are fewer inter-record gaps). If the archive
is in a disk file or a pipe, you may want to specify a smaller
blocking factor, since a large one will result in a large number of
null bytes at the end of the archive.

您可以像这样创建相同的压缩 tar 存档:

tar -b 20 -cf test.tar test1 test2 test3
gzip test.tar 

【讨论】:

以上是关于为啥我压缩了文件与压缩前的大小差不多?的主要内容,如果未能解决你的问题,请参考以下文章

文件夹大小基本差不多,可为啥压缩出来的文件包却相差那么大?

Linux压缩及归档

linux 压缩以及归档

为啥文件压缩后和原文件大小不一样

web性能优化—— 打包构建优化

请问为啥同一个压缩文件显示的大小却不同呢?