在 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

posted @ 2024-06-24 16:28  不是豆豆  阅读(63)  评论(0编辑  收藏  举报
友情链接:迷途