2008-10-14 100 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. 

它的工作是比較簡單! 這是一個渺茫的可能性,也許值得一試 - 它可能會幫助那裏的某個人。

相關問題