use*_*014 8 compression rar tar winzip winrar
我有一个非常大的文件夹(~10GB),在它的目录树中包含许多重复的文件.其中许多文件重复了10次.重复的文件并不是并排存在,而是存在于不同的子目录中.
如何压缩文件夹使其足够小?
我尝试在"最佳"模式下使用Winrar,但它根本没有压缩它.(很奇怪)
zip\tar\cab\7z \任何其他压缩工具会做得更好吗?
我不介意让这个工具工作几个小时 - 但不是更多.
我宁愿不自己编程
7-zip支持“ WIM”文件格式,该格式将检测和“压缩”重复项。如果您使用的是7-zip GUI,则只需选择“ wim”文件格式。
仅当您使用命令行7-zip时,才可以看到此答案。 https://serverfault.com/questions/483586/backup-files-with-many-duplicated-files
小智 6
您的情况下最好的选择是7拉链。以下是选项:
7za a -r -t7z -m0=lzma2 -mx=9 -mfb=273 -md=28 -ms=8g -mmt=off -mmtf=off -mqs=on -bt -bb3 archife_file_name.7z /path/to/files
Run Code Online (Sandbox Code Playgroud)
a -将文件添加到存档
-r -递归子目录
-t7z -设置存档类型(您的情况下为7z)
-m0=lzma2-将压缩方法设置为LZMA2。LZMA是默认设置,是7z格式的常规压缩方法。LZMA方法的主要特点:
-mx=9-设置压缩级别。x = 0表示复印模式(无压缩)。x = 9-超
-mfb=273-设置LZMA的快速字节数。它的范围可以是5到273。正常模式的默认值为32,最大模式和超级模式的默认值为64。通常,较大的数字会带来更好的压缩率和较慢的压缩过程。
-md=29-设置LZMA的字典大小。您必须以字节,千字节或兆字节为单位指定大小。字典大小的最大值为1536 MB,但是32位版本的7-Zip最多可以指定128 MB字典。LZMA的默认值在正常模式下为24(16 MB),在最大模式(-mx = 7)下为25(32 MB),在超级模式(-mx = 9)下为26(64 MB)。如果未从集合[b | k | m | g]中指定任何符号,则字典大小将计算为DictionarySize = 2 ^ Size字节。要解压缩由字典大小为N的LZMA方法压缩的文件,您需要大约N个字节的可用内存(RAM)。
我md=29之所以使用,是因为在我的服务器上只有16Gb的RAM可用。使用此设置,在任何目录大小的归档中,7-zip仅占用5Gb。如果我使用更大的字典大小-系统将进行交换。
-ms=8g-启用或禁用固定模式。默认模式是s=on。在固定模式下,文件被分组在一起。通常,以固态模式压缩会提高压缩率。在您的情况下,这对于使实体块尺寸尽可能大非常重要。
固体块尺寸的限制通常会降低压缩比。固体.7z档案的更新可能很慢,因为它可能需要重新压缩。
-mmt=off-将多线程模式设置为OFF。您需要将其关闭,因为我们需要在一个单一块中由相同的7-zip线程处理相似或相同的文件。缺点是存档缓慢。不管系统有多少个CPU或内核。
-mmtf=off-将过滤器的多线程模式设置为OFF。
-myx=9 -将文件分析级别设置为最大,对所有文件(增量和可执行过滤器)进行分析。
-mqs=on-按类型在固态档案中对文件进行排序。将相同的文件存储在一起。
-bt-显示执行时间统计信息
-bb3-设置输出日志级别
我建议我尝试过的3个选项(在Windows中):
我有10个文件夹,其中包含不同版本的网站(文件包括.php,.html,.js,.css,.jpeg,.sql等),总大小为1Gb(每个文件夹平均100Mb)。标准的7zip或WinRar压缩文件给我的文件大小约为400 / 500Mb,而这些选项分别给我的文件是(1)80Mb,(2)100Mb和(3)170Mb。
更新编辑:感谢@Griffin在评论中的建议,我尝试对7zip WIM文件使用7zip LZMA2压缩(字典大小似乎没有区别)。遗憾的是,与我几年前在测试中使用的备份文件不同,但是我可以将WIM文件压缩为其大小的70%。我将尝试使用您的特定文件集尝试这2个步骤的方法,并将其与方法1进行比较。