在 linux 下使用 7z 解压时遇到错误:ERROR: Unsupported Method : runtimes/win-arm64/native/sni.dll
貌似是 7z 对于特殊平台下的文件,有过滤并会应用相应的算法优化
如何禁用?在压缩时添加参数:
-mf=off:禁用所有过滤器(包括 ARM64 BCJ 过滤器)
示例:
# 在使用 7z 命令行进行压缩时,为了禁用 ARM64 特定的 BCJ 过滤器,可以显式地指定不使用这些过滤器。以下是一个示例命令,确保使用通用的 LZMA2 压缩方法而不使用 ARM64 的 BCJ 过滤器:
7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on -mf=off archive.7z files
# 解释参数的含义:
# a: 添加文件到压缩包。
# -t7z: 指定压缩包的格式为 7z。
# -m0=lzma2: 使用 LZMA2 压缩方法,这是 7z 格式的默认压缩方法。
# -mx=9: 设置压缩级别为 9,这是最高的压缩级别。
# -mfb=64: 设置每个压缩块使用的过滤器块大小。
# -md=32m: 设置字典大小为 32 MB。
# -ms=on: 开启固实压缩模式。
# -mf=off: 禁用所有过滤器(包括 ARM64 BCJ 过滤器)。
# archive.7z: 生成的压缩包的名称。
# files: 要压缩的文件或目录,可以用通配符指定多个文件或目录。
参考来源:ChatGPT
https://www.7-zip.org/7z.html
输了你,赢了世界又如何...