答案1
tar
默认情况下,存档的最小大小为 10240 字节;看GNUtar
手册详细信息(但这不是 GNU 特定的)。
使用 GNU tar
,您可以通过指定不同的块大小或不同的块因子或两者来减少此问题:
tar -cv -b 1 -f file.tar file.txt
结果仍然会大于file.txt
,因为除了其本身之外file.tar
还存储有关元数据。在大多数情况下,您将看到一个用于文件元数据(名称、大小、时间戳、所有权、权限)的块,然后是文件内容,然后是两个用于归档结束条目的块,因此包含非归档的最小归档零长度文件的大小为四个块(2,048 字节和一个 512 字节块)。file.txt
file.txt
答案2
tar
除了简单地存储文件之外,还需要做三件事:
- 存储元数据(文件名、模式、所有者、组、日期...)
- 标记文件末尾。
- 标记存档的结尾。
tar
意思是“磁带档案”。对于磁带来说,确定文件结尾在哪里很重要,并且即使在搜索时设备也需要知道它(磁带移动速度更快)。因此,为了磁带方便, tar 在每个文件的末尾添加了一些零,并在存档的末尾添加了另一组血清。您指出的第二个问题确实解释了这一点。
您可以使用查看存档中的内容hexdump -C archive.tar |less
。