如何在 Linux 控制台中修复截断的 Tar 文件

如何在 Linux 控制台中修复截断的 Tar 文件

在运行 Linux Ubuntu 16.04' 的远程服务器上,当我从一堆旧 .rar 文件(约 150G)中解压 tar 文件时,空间不足,现在最后的 tar 已“损坏”。当我执行此操作时,tar tf我得到:

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

我怎样才能修复这个损坏的 tar?

我尝试过:

  • 从 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
  • 我还尝试使用十六进制编辑器删除文件的最后一部分,我认为这就是问题所在,但我退缩了,因为我不知道具体如何或要修复什么,而且我不想让事情变得更糟。

有任何想法吗?

相关内容