当提取时文件丢失但没有给出错误时,有没有办法诊断 tar 文件?

当提取时文件丢失但没有给出错误时,有没有办法诊断 tar 文件?

我有 tar 文件,其中存档了大约 250 个文件,每个文件大约 80 Mb,没有压缩。在某些情况下,tar 仅返回部分文件。例如,当使用以下命令提取文件时:

tar -xvf 356.tar

我只得到了 103 个文件,而它应该返回 255 个文件,但 tar 没有给我错误。此外,tar 存档为 15.8 Gb,而提取的文件夹只有 6.4 Gb。tar 文件是使用

tar -cvf 356.tar 356

其中 356 是文件夹的名称。

所有步骤都在同一台机器上完成,使用 Ubuntu 6 及更新版本。有没有什么办法可以恢复未被提取的文件?

答案1

我知道这有点明显,但是提取的任何文件都可以被隐藏吗?

您是否尝试过在提取之前仅列出 tar 的内容?

答案2

您在哪个平台上进行打包以及在哪里进行解压。如果您在 Linux 中打包并在 Windows 中解压,那么您可能会发现由于文件名过长而导致的异常行为。您是否针对 ls -lR 365 执行了 tar -tvf 365.tar 并查看是否匹配。

tar -tvf 354.tar > 1.log
ls -lR 365 > 2.log
diff 1.log 2.log

以上内容有帮助吗?

答案3

请注意,完全可以要求tar(此处:Fedora 34 上的 GNU tar 1.34)多次添加同一个文件:

$ tar cf xxx.tar np.txt np.txt np.txt np.txt
$ ls -l xxx.tar np.txt 
-rw-rw-r--. 1 vonbrand vonbrand     0 Aug 10 11:00 np.txt
-rw-rw-r--. 1 vonbrand vonbrand 10240 Aug 21 13:35 xxx.tar
$ tar tvf xxx.tar
-rw-rw-r-- vonbrand/vonbrand 0 2021-08-10 11:00 np.txt
hrw-rw-r-- vonbrand/vonbrand 0 2021-08-10 11:00 np.txt link to np.txt
hrw-rw-r-- vonbrand/vonbrand 0 2021-08-10 11:00 np.txt link to np.txt
hrw-rw-r-- vonbrand/vonbrand 0 2021-08-10 11:00 np.txt link to np.txt

相关内容