I am running on Ubuntu 18.04.4 LTS.
I gzipped a folder with roughly 60+K files into a .tar.gz file. The compressed file had a size of 3.3Gb.
I opened the compressed file to extract some files, and realised to my shock, dismay and error, that only a few files (total file size of 6.2K) were stored in the zip!
What could possibly have gone wrong? How can the .tar.gz file have such a huge file size - yet contain files with a total filesize of around 0.5% ?
For what it's worth, none of the files I compressed are hidden files, and this is the file I used to compress the folder files:
nohup ssh me@yourbox "tar -cf - /path/to/folder" | gzip > foldername.remote.`(date +%Y%m%d)`.tar.gz &
This is the output when I run 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
How do I recover my files from the compressed file?
Answering this, just in case it is useful to anyone else in the future.
These are the steps I followed:
tar tzvf compressed-filename.tar.gz
to check for errors/path/to/gzr compressed-filename.tar.gz
, if all goes well, you'll have a freshly minted file named: compressed-filename.tar.recoveredcpio -F compressed-filename.tar.recovered -i -v
(you'll need to install cpio if you don't have it)The last command will restore all files (not damaged - i.e. "recoverable") in to the folder it was run in. More likely than not, at some point in the recovery, cpio will abort and print the dreaded: cpio: premature end of file - but hopefully, you will have been able to retrieve the majority of your files before the unexpected EOF.