Восстановление возможно, но зависит от того, что вызвало коррупцию.
Если файл только усечен, получить какой-то частичный результат не так уж сложно; просто беги
gunzip < SMS.tar.gz > SMS.tar.partial
, который выдаст некоторый вывод несмотря на ошибку в конце.
Если в сжатом файле большие пропущенные блоки, после сбойного блока он практически безнадежен.
Если сжатый файл систематически поврежден небольшими способами (например, при передаче двоичного файла в режиме ASCII, который разбивает возврат каретки и переводы строки по всему файлу), его можно восстановить, но для этого требуется совсем немного пользовательского программирования, это действительно Это того стоит, если у вас нет абсолютно никаких других ресурсов (нет резервных копий), а данные стоят больших усилий. (Я сделал это успешно.) Я упомянул этот сценарий в предыдущем вопросе .
Ответы для файлов .zip несколько различаются, поскольку в zip-архивах есть несколько отдельно сжатых элементов, поэтому есть большая надежда (хотя большинство коммерческих инструментов довольно поддельные, они устраняют предупреждения, исправляя CRC, а не восстанавливая достоверные данные). Но ваш вопрос был о файле .tar.gz, который является архивом с одним большим членом.