На удаленном сервере под управлением Linux Ubuntu 16.04 'у меня не хватило места, когда я делал tar-файл из набора старых файлов .rar (~ 150G), и теперь конечный tar' поврежден '. Вот когда я делаю tar tf я получаю:

tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

Как я могу исправить эту поврежденную смолу?

Я пытался:

  • удалить усеченный файл из tar (tar --delete -f mycorruptedtar.tar offendingfile.ext)
  • восстановить его, извлекая файлы, которые не повреждены, и добавляя их в новый tar, выполнив

#!/bin/bash

for file in $(tar -tf mycorruptedtar.tar);
do
        if [ ! "$file" == "offendingfile.ext" ]
        then
                tar xf mycorruptedtar.tar $file
                tar rf newtar.tar $file --remove-files
                tar --delete -f mycorruptedtar.tar $file
        fi
done
  • Я также попытался с помощью шестнадцатеричного редактора удалить последнюю часть файла, которая, как я полагаю, заключается в том, в чем заключается проблема, но я выбился из колеи, потому что не знал точно, как или что исправить, и я не хотел ухудшать ситуацию.

Есть идеи?

0