linux - 从损坏的 tar 存档中提取好文件

标签 linux

我有一个很大的 tar 存档,里面有很多 xml 文件。此存档中的几个 xml 文件已损坏。如何在程序不退出的情况下提取好文件?

gz中有一个tar文件

tar zxf myFile.gz

tar: Unexpected EOF in archive
tar: rmtlseek not stopped at a record boundary
tar: Error is not recoverable: exiting now

最佳答案

从文件名来看,您似乎正在尝试解压非 tar 存档的内容。通常,tar 文件的扩展名是 .tar,如果使用 gzip 进行压缩,则扩展名为 .tar.gz.tgz

您正在运行的命令(带有 tarz 选项)会首先尝试撤消 gzip 压缩,然后解压生成的存档。但从 .gz 扩展名来看,它看起来更像是一个 gzip 压缩的文件,而不是一个 gzip 压缩的 tar 存档。

最好的办法是检查该文件以找出它是什么类型的文件:

file myFile.gz

这会告诉你它是否经过 gzip 压缩或其他什么。如果它是 gzip 压缩的,则运行

gunzip myFile.gz

这将为您留下不带扩展名的myFile;然后你可以使用

file myFile

探测它以确定它是 tar 存档还是其他东西。

关于linux - 从损坏的 tar 存档中提取好文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39346915/

相关文章:

linux - Wayland version1.0.3是否支持触摸和windows切换?

Linux shell 在串行计算中使用 disown

c - 无需绑定(bind)即可从特定端口发送 UDP

linux - 设备上没有剩余空间

mysql - 如何在 MYSQL - Linux 中更改函数定义器?

linux - 如何在 Tcl 中安装软件包?

c++ - 使用 c/c++ 将数据发送到设备/dev/eth0(或类似)的最低级别方法是什么

linux - 用于挂载 USB 的 Bash 脚本

linux - Linux 中最好的 UML 设计工具?

c - 在核心之间共享数据的最有效方式