我有 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