我在 Ubuntu 18.04.4 LTS 上运行。
我将一个包含大约 60+K 个文件的文件夹压缩成一个 .tar.gz 文件。压缩文件大小为 3.3Gb。
我打开了压缩文件来提取一些文件,然后震惊、沮丧和错误地发现,zip 中只存储了几个文件(总文件大小为 6.2K)!
可能出了什么问题?.tar.gz 文件怎么会有这么大的文件大小 - 但包含的文件却只占总文件大小的 0.5% 左右?
值得一提的是,我压缩的文件都不是隐藏文件,这是我用来压缩文件夹文件的文件:
nohup ssh me@yourbox "tar -cf - /path/to/folder" | gzip > foldername.remote.`(date +%Y%m%d)`.tar.gz &
这是我运行时的输出tar zvf compressed.file.tar.gz
:
morpheous@ZEUS:~$ tar tzvf foobar.remote.20200717.tar.gz
drwxr-xr-x morpheous/morpheous 0 2019-04-19 13:51 foobar/
drwxr-xr-x morpheous/morpheous 0 2020-04-16 10:46 foobar/maps/
-rw-rw-r-- morpheous/morpheous 5615 2017-11-28 08:34 foobar/maps/us_sector_XLV.csv
drwxr-xr-x morpheous/morpheous 0 2018-02-26 13:00 foobar/maps/HIX/
-rw-rw-r-- morpheous/morpheous 8 2016-07-29 08:59 foobar/maps/HIX/3350.csv
-rw-rw-r-- morpheous/morpheous 18 2018-01-28 00:37 foobar/maps/HIX/5330.csv
-rw-rw-r-- morpheous/morpheous 89 2018-01-28 00:39 foobar/maps/HIX/5370.csv
-rw-rw-r-- morpheous/morpheous 84 2018-01-28 00:38 foobar/maps/HIX/7570.csv
-rw-rw-r-- morpheous/morpheous 88 2018-01-28 00:38 foobar/maps/HIX/3720.csv
-rw-rw-r-- morpheous/morpheous 32 2018-01-28 00:39 foobar/maps/HIX/2770.csv
-rw-rw-r-- morpheous/morpheous 10 2016-07-29 08:59 foobar/maps/HIX/9570.csv
-rw-rw-r-- morpheous/morpheous 18 2016-07-29 08:59 foobar/maps/HIX/3760.csv
-rw-rw-r-- morpheous/morpheous 240 2018-01-28 00:38 foobar/maps/HIX/8980.csv
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
如何从压缩文件中恢复我的文件?
答案1
回答这个问题,以防将来对其他人有用。
以下是我遵循的步骤:
- 运行
tar tzvf compressed-filename.tar.gz
检查错误 - 如果遇到错误,请下载gzip 恢复实用程序
- 在本地构建 gzrt 二进制文件(您需要安装 make 和 gcc)
- 运行
/path/to/gzr compressed-filename.tar.gz
,如果一切顺利,您将得到一个新生成的文件,名为:压缩文件名.tar.recovered - 运行命令
cpio -F compressed-filename.tar.recovered -i -v
(如果没有,则需要安装 cpio)
最后一个命令将恢复所有文件(未损坏 - 即可恢复)到运行它的文件夹中。很有可能,在恢复的某个时刻,cpio 将中止并打印可怕的内容:cpio:文件过早结束- 但希望您能够在意外的 EOF 之前检索到大部分文件。