修复 gzip tar

Ale*_*lex 5 gzip

我有一个非常大(50Gb)的 tar.gz 文件,我无法再解压了。我得到的错误是这样的:

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)

有没有办法修复损坏的tar.gz?

更新:文件命令的输出:

$ file projects.tgz 
projects.tgz: POSIX tar archive (GNU)
Run Code Online (Sandbox Code Playgroud)

Lek*_*eyn 11

您的文件是未压缩的 tarball。扩展名.tgz具有误导性,您可能希望为文件提供更好的扩展名,例如.tar

mv projects.tgz projects.tar
Run Code Online (Sandbox Code Playgroud)

您可能已经尝试通过运行来提取文件:

tar xzvf projects.tar
Run Code Online (Sandbox Code Playgroud)

但是提取 tarball 的正确方法是:

tar xvf projects.tar
Run Code Online (Sandbox Code Playgroud)

选项说明:

  • x:电子X
  • z: G Z ip 压缩(在您的文件中不是这种情况,因此现在应该将其删除)
  • f˚F ILE(需要下一个参数是存档的文件名)
  • v:是v erbose(显示文件名,而提取)。

有关此命令的更多信息,请参阅tar手册页