问题现象
假设现有一堆分卷压缩文件,其目录结构如下:
– data
----| xxx.tar.gz.0000
----| xxx.tar.gz.0001
----| xxx.tar.gz.0002
在解压分卷压缩文件时,理论上直接使用tar解压第一个分卷,会自动遍历解压所有的分卷,解压命令如下:
tar -xzvf xxx.tar.gz.0000
但是有时会出现如下的报错:
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
解决方案
产生以上报错的原因可能有:
- 压缩文件损坏
- 压缩文件下载不完整
可以重新下载,并确认下载是否完整。确认压缩文件没有什么问题,但是还是出现这个报错,可使用以下的解压缩命令:
cat xxx.tar.gz.000? | tar -xzvf -
即先将所有分卷拼接在一起再解压缩,xxx.tar.gz.000?就是匹配所有的分卷压缩文件,注意命令最后的-
不能少。