2008-10-14 108 views
22

我有一个.tar.gz压缩文件中的大量文件。用命令如何从损坏的.tar.gz存档中恢复文件?

file SMS.tar.gz 

检查文件类型给出了回应

gzip compressed data - deflate method , max compression 

当我尝试提取与gunzip解存档,延迟一段时间后我收到消息

gunzip: SMS.tar.gz: unexpected end of file 

有任何方式来恢复甚至部分档案?

回答

15

您确定它是一个gzip文件吗?我会首先运行'file SMS.tar.gz'来验证。

然后我会阅读The gzip Recovery Toolkit页面。

+2

gzrecover未安装在Mac OS上。但是,Liudvikas Bukys的方法运行良好。如果将tcpdump传送到gzip,用Control-C杀死,意外的EOF尝试解压缩pipee文件。 – George 2014-03-01 18:57:08

+0

gzip恢复工具包是巨大的。谢谢! – Nemo 2016-06-24 02:49:49

29

恢复是可能的,但它取决于造成腐败的原因。

如果文件刚被截断,得到部分结果不是很难;只是运行

gunzip <SMS.tar.gz> SMS.tar.partial 

尽管最后出现错误,它仍会给出一些输出。

如果压缩文件有大量缺失块,那么在坏块之后基本没有希望。

如果压缩文件以小的方式系统地被破坏(例如以ASCII模式传输二进制文件,这会破坏整个文件中的回车符和换行符),但可以恢复但需要相当多的自定义编程,如果你完全没有其他追索权(没有备份),并且数据值得付出很大的努力,那才是真正值得的。 (我已经成功完成了。)我在previous question中提到过这种情况。

由于zip档案有多个独立压缩的成员,所以.zip文件的答案有所不同,所以有更多的希望(尽管大多数商业工具相当虚假,它们通过修补CRC来消除警告,而不是恢复良好的数据)。但是你的问题是关于一个.tar.gz文件,它是一个大成员的档案。

+0

在这个过程之后很可能会有一个不可读的文件。幸运的是,有一个工具可以解决这个问题,并从中获取部分数据:http://riaschissl.bestsolution.at/2015/03/repair-corrupt-tar-archives-the-better-way/ – JohnEye 2016-10-04 11:27:04

3

这是我们遇到的一种可能的情况。我们有这不会解压缩tar.gz文件,试图解压给了错误:

gzip -d A.tar.gz 
gzip: A.tar.gz: invalid compressed data--format violated 

我想通了,该文件可以被最初上传了非二进制FTP连接(我们不知道当然)。

该解决方案使用UNIX dos2unix实用

dos2unix A.tar.gz 
dos2unix: converting file A.tar.gz to UNIX format ... 
tar -xvf A.tar 
file1.txt 
file2.txt 
....etc. 

它的工作是比较简单! 这是一个渺茫的可能性,也许值得一试 - 它可能会帮助那里的某个人。

相关问题