当前位置:首页 > 百科

zstd文件解压不了

双击那个.zst文件,文件系统弹窗说“无法打开”。解压右键看属性,文件大小只有几KB,解压但原始文件明明有2个G。文件这种时候别急着骂网盘,解压大概率是文件文件根本没下完。

zstd这东西全称Zstandard,解压Facebook(现在叫Meta)2016年开源的文件压缩算法。跟zip、解压7z比,文件它压缩比不差,解压速度却快得离谱。文件Linux内核、解压Docker镜像、文件还有一堆现代软件包都在用它。问题是,它不像zip那样双击就能解,Windows资源管理器原生不支持,macOS的归档实用工具也认不出来。你得装专门的工具。

先检查文件本身

我见过太多人卡在这一步。浏览器下载中断、网盘传输丢包、磁盘写满导致写入不完整——这些都会生成一个“看起来正常”的.zst文件。用命令行验证最直接:

zstd -t yourfile.zst

如果报“Unexpected end of file”或者“Data corruption detected”,那就别折腾解压软件了,重新下载。Windows下可以用PowerShell算一下哈希,跟源站对比。没有源站哈希?看文件大小,如果只有几KB而原始文件是GB级别,那铁定是下载出了问题。

工具选对了吗

Windows上最省事的是7-Zip,但注意:7-Zip 21.07之前的版本不支持zstd。你得去官网下最新版,或者用Zstandard官方Windows二进制包。解压出来有个zstd.exe,拖到命令行里用:

zstd -d yourfile.zst

那个-d就是decompress。想保留原文件加-k,想指定输出文件名加-o output.txt。macOS用户用Homebrew装:brew install zstd。Linux一般自带,没有就apt install zstd或者yum install zstd。

有个坑:有些文件是.tar.zst,这是先打包成tar再zstd压缩。你得先解zstd得到tar,再解tar。两步走:

zstd -d archive.tar.zst tar -xvf archive.tar

或者一步到位:tar --zstd -xvf archive.tar.zst。GNU tar 1.31以上才支持--zstd,老版本会报错。

那些奇奇怪怪的报错

“zstd: command not found”——没装或者没加进PATH。Windows下把zstd.exe所在目录加到系统环境变量里,或者直接在文件所在目录打开命令行。

“Unsupported frame parameter”——文件用了新版本zstd的特性,你的工具太老。升级zstd到最新版,目前是1.5.6。

“Dictionary required”——有些zst文件用了预训练字典压缩,你得找到对应的字典文件。zstd -D dictionary yourfile.zst。字典文件通常跟压缩包放在一起,扩展名可能是.dict或者.zdict。

权限问题在Linux上常见。解压出来的文件没有执行权限?chmod +x filename。磁盘空间不足?df -h看一眼。这些跟zstd本身没关系,但报错信息混在一起容易让人误判。

图形界面工具

不想碰命令行的话,Windows上用PeaZip,开源免费,原生支持zstd。Bandizip也行,但免费版有广告。macOS上BetterZip或者Keka。Linux桌面环境一般右键就有“提取到此处”,背后调的就是tar和zstd。

我个人的习惯:服务器上永远用命令行,快且可控。桌面环境偶尔用PeaZip应急,但涉及大文件还是命令行靠谱——图形工具解压到一半卡死的情况我遇到过不止一次。

最后说个冷门的:如果你拿到的文件扩展名是.zst但实际是gzip或者xz,改后缀没用。用file yourfile.zst看一眼真实类型。Linux下这个命令能省你半小时瞎折腾。

分享到: