如何在 7-zip 中执行“不压缩存储文件”?

如何在 7-zip 中执行“不压缩存储文件”?

有什么办法选择性预防7-zip 中压缩的某些文件类型,例如 WinRAR?

我正在尝试压缩一个巨大的文件夹(几千兆字节),并且我不希望重新压缩已经压缩的文件(例如 ZIP 文件)——它们应该以未压缩的形式存储。

答案1

是的,同一个 7-Zip 档案中的不同文件可以采用不同的压缩方法。

使用命令行版本的7-Zip,带上参数-m指定方法为Copy,表示不压缩。

例子 :

7za a -m0=Copy tmp7.7z *.txt

有关详细信息,请参阅For more info, see-m(设置压缩方法)开关

答案2

假设您的文件夹中有 zip 文件和未压缩的 txt 文件。

第一步使用以下命令创建一个压缩 txt 文件的档案。

您可以使用 -m 设置压缩级别,这也取决于您使用的压缩方法

我们假设这里仅是默认压缩

7z a compressed.7z *.txt -r 

您现在将获得 compressed.7z。

第二步将已经压缩的文件复制到此档案或创建新的档案

7z u compressed.7z -u!update.7z -mx0 *.zip 

更新命令有进一步阐述这里

如果你可以自由使用图形界面,可以按照以下方式进行更新

在此处输入图片描述

答案3

从技术上讲,压缩文件不会进一步压缩,这与熵限制或类似的东西有关,我忘记了细节,但据我所知,您最多能得到的压缩率不到 2%。

大多数好的压缩器都会检查压缩情况并简单地存储不可压缩的文件,因为压缩会增加开销并增加大小。

当然,首先需要花费查看文件的工作和时间。

正如其他答案中所讨论的,对文件集执行多次传递可能是最好的解决方案,并且易于编写脚本。

创建 7z 存档并一次性添加除压缩文件之外的所有内容,然后将预压缩文件作为非压缩数据附加。(我这样做是因为可压缩的内容将位于存档的开头,而不可压缩的内容则位于结尾。由于它们是连续的,因此它可以更快地从驱动器流出)

(过多使用‘压缩...’!)

相关内容