为什么我的 tar 文件比它的内容大?

为什么我的 tar 文件比它的内容大?

我有一个从两个文件 xaa、xab(使用 split 命令的结果)重新创建的 tar 文件。 tar 文件的大小是我期望的大小,但是当我解压它时,我得到的文件夹只是 tar 文件大小的一小部分。请参阅下面的终端输出以了解我的命令顺序。不幸的是,我没有原始的 tar 文件或文件夹 - 所以这是我恢复此数据的唯一机会。当我在“文件滚轮”中打开存档时,我看到的文件夹与提取后在命令行上看到的文件夹相同,这些只是我希望看到的文件的子集。任何人都可以建议为什么会这样吗?

~> cat xa* > archive
~> file archive
archive: POSIX tar archive (GNU)
~> ls -la archive
-rw-r--r-- 1 hugo users 24471439360 Jun  1 18:50 archive
~> tar xf archive
~> cd repos
~/repos> du --max-depth 0 -h
83M .
~/repos> cd ../
~> tar cf newarchive repos
~> ls -la newarchive
-rw-r--r-- 1 hugo users 53288960 Jun  1 19:57 newarchive

答案1

将提取 tar 文件,直到找到指示 tar 文件结尾的标记:从物理上讲,存档由一系列以存档结束条目终止的文件条目组成,该条目由两个 512 个零字节块组成从tar文件格式描述这里

因此,您的存档文件可能在标记后包含未提取的材料。

答案2

听起来您要提取的磁盘没有足够的可用空间来容纳 tar 存档中的所有文件和目录。检查df -k .您提取文件的目录。

有时,如果您对有“漏洞”的文件进行 tar 压缩,您将得到比原始文件大得多的 tar 存档文件。此外,tar 存档文件还包含元数据、文件名、权限、所有权等以及文件数据。因此 tar 存档总是至少比原始文件大一点。

相关内容