7za 方法不一致 CentOS

7za 方法不一致 CentOS

如果我设置,LZMA2我就会得到LZMA,反之亦然!什么?

CentOS9

$ 7za a -mx=9 -mm=LZMA2 test.7z *.sh

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_GB.utf8,Utf16=on,HugeFiles=on,64 bits,3 CPUs AMD EPYC Processor (830F10),ASM,AES-NI)

Open archive: test.7z
--
Path = test.7z
Type = 7z
Physical Size = 320
Headers Size = 178
Method = LZMA:12

$ 7za a -mx=9 -mm=LZMA test.7z *.sh

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_GB.utf8,Utf16=on,HugeFiles=on,64 bits,3 CPUs AMD EPYC Processor (830F10),ASM,AES-NI)

Open archive: test.7z
--
Path = test.7z
Type = 7z
Physical Size = 321
Headers Size = 172
Method = LZMA2:12

答案1

目前我的 Kubuntu7za与有问题的版本相同(7-Zip (a) [64] 16.02),并且我能够复制您的“问题”。

如果病例test.7z尚不存在,该工具将打印Creating archive: test.7z才不是打印Method =。这不符合您的示例。

如果案例test.7z已经存在,该工具会打印Open archive: test.7z并打印Method =。这符合您的示例。重要的是,此Method =行指的是档案的状态它被改变了。Updating archive: test.7z被打印之后(我想你在问题中省略了这部分输出)并且没有Method =显示处理后的状态的行。

如果我是对的,Method =您的示例中显示了处理之前与文件相关的方法,即您使用的方法之前LZMA。我猜你在和之间交替,LZMA2并希望向Method =你展示处理后与文件相关的方法。这让你认为LZMALZMA2被错误地交换了。

尝试使用LZMAafter LZMA(或LZMA2after LZMA2),您就会明白我的意思。或者最好运行7za t test.7zafter 7za a …;这将向您显示当前状态而不更改存档。输出中的7za t …Method =应反映您刚刚使用的方法。

相关内容