有没有办法像WinRAR那样有选择地防止某些文件类型在7-zip中压缩?
我正在尝试压缩一个巨大的文件夹(许多GB),并且我不希望重新压缩已经压缩的文件(例如ZIP文件)-它们应该不压缩地存储。
有没有办法像WinRAR那样有选择地防止某些文件类型在7-zip中压缩?
我正在尝试压缩一个巨大的文件夹(许多GB),并且我不希望重新压缩已经压缩的文件(例如ZIP文件)-它们应该不压缩地存储。
Answers:
是的,对于同一7-Zip存档中的不同文件,可能有不同的压缩方法。
使用带有-m
参数的命令行版本的7-Zip 将方法指定为Copy
,这意味着不进行压缩。
范例:
7za a -m0=Copy tmp7.7z *.txt
有关更多信息,请参见-m(设置压缩方法)开关。
-m0=Copy
不起作用,请尝试-mx=0
。
我创建了一个PowerShell脚本,该脚本将通过存储已经压缩的文件类型(例如.zip文件)来快速压缩目录,而无需尝试重新压缩它们。它使用7zip的命令行界面,并使用文件扩展名来决定是压缩还是简单地存储任何给定的文件。
您可以在此处找到脚本:https : //gist.github.com/ivanatpr/5dea086172eab573ba71
从技术上讲,压缩文件不会进一步压缩,关于熵极限之类的东西,我忘记了细节,但是您获得的最多信息不到我所看到的2%。
大多数好的压缩器都会检查压缩并仅存储不可压缩的文件,因为压缩会增加开销并增加大小。
当然,首先要查看文件的工作和时间。
正如在其他答案中所讨论的那样,对文件集执行多次传递可能将是最佳解决方案,并且易于编写脚本。
创建7z归档文件,并一次性添加所有内容,但添加压缩文件,然后将预压缩文件作为未压缩数据附加。(我这样做是因为可压缩的内容将位于存档的开头,而所有不可压缩的则位于末尾。由于它是连续的,它将更快地从驱动器中流出)
(太多使用“压缩...”!)