Восстановление возможно, но это зависит от того, что вызвало коррупцию.
Если файл просто усечен, получение частичного результата не слишком сложно; просто запустите
gunzip <SMS.tar.gz> SMS.tar.partial
, который даст некоторый выход, несмотря на ошибку в конце.
Если сжатый файл имеет большие недостающие блоки, он по существу безнадежен после плохого блока.
Если сжатый файл систематически поврежден небольшими способами (например, перенос двоичного файла в режиме ASCII, который разбивает возвраты каретки и строки новой строки по всему файлу), можно восстановить, но требует довольно много пользовательского программирования, это действительно стоит того, если у вас нет абсолютно никакого другого обращения (нет резервных копий), и данные стоят больших усилий. (Я сделал это успешно.) Я упомянул этот сценарий в previous question.
Ответы на .zip-файлы несколько отличаются друг от друга, поскольку в архивах zip имеется несколько сжатых элементов, поэтому есть большая надежда (хотя большинство коммерческих инструментов довольно фиктивные, они устраняют предупреждения путем исправления CRC, а не восстановления хороших данных). Но ваш вопрос касался файла .tar.gz, который представляет собой архив с одним большим членом.
gzrecover не установлен на Mac OS. Однако метод Людвикаса Букиса работал отлично. Если бы tcpdump был отправлен в gzip, убитый с помощью Control-C, неожиданный EOF пытается распаковать файл pipee. – George
gzip Recovery Toolkit потрясающий. Благодаря! – Nemo