我创建了一个备份
# tar -cvpzf /run/media/user/XYZ/backup.tar.gz --exclude=/run/media/user/root/mnt /run/media/user/root/
现在我需要备份,当我尝试提取 tar.gz 存档时,我不小心删除了备份文件:
#tar -xvpzf /run/media/user/XYZ/backup.tar.gz -C /run/media/user/otherDevice/
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
我几乎立即收到错误,所以我猜只有一些位被覆盖。我仍然可以看到该文件,但其大小为 0 字节。分区类型为NTFS。有人可以解释发生了什么以及如何恢复文件吗?
答案1
ntfsundelete
包里有一个工具ntfsprogs
:https://manpages.ubuntu.com/manpages/trusty/man8/ntfsprogs.8.html
由于您有 NTFS 存储,您还可以尝试使用基于 Windows 的工具(其中有几个具有不同程度的可用性)。
但最有可能的是,您不需要恢复存档。首先,如果您现在看到的存档的字节长度为零 - 该文件存在,则不会被删除。
其次,tar
在提取时不修改存档文件。存档文件的零长度通常意味着当您创建备份时 - 由于某种原因失败。而你只是错过了这一点。
您现在可以/应该做什么 - 尝试从原始文件再次创建备份。并检查它是否好。tar -t
会对此有所帮助。