在 Linux Mint 22 上,我创建了 GNU 和 POSIX 版本的tar
s,其中包含 2 个小文件:
$ tar --posix -cf archive-posix.tar auto-fan-control.cpp Makefile
$ tar -cf archive-gnu.tar auto-fan-control.cpp Makefile
$ file *.tar
archive-gnu.tar: POSIX tar archive (GNU)
archive-posix.tar: POSIX tar archive
令人惊讶的是,tar
这些文件的大小都是10240,而我的文件要小得多:
$ \ls -l *.tar
-rw-rw-r-- 1 vlastimil vlastimil 10240 Dec 22 10:41 archive-gnu.tar
-rw-rw-r-- 1 vlastimil vlastimil 10240 Dec 22 10:40 archive-posix.tar
$ \ls -l auto-fan-control.cpp Makefile
-rw-rw-r-- 1 vlastimil vlastimil 863 Dec 22 01:10 auto-fan-control.cpp
-rw-rw-r-- 1 vlastimil vlastimil 1323 Dec 22 09:48 Makefile
也就是说,我的文件总共只有2186 个字节,与tar
占用 10240 个字节的两个文件相比,这不能简单地通过包含一些元数据(如 CRC 等)来证明。恕我直言,如果我的调用正确的话,肯定有某种填充。
因此,需要明确的是,这个问题的答案不能回答我的问题:tar 存档的大小大于存档文件的大小
仔细想想,看来的最小尺寸tar
是 10240,或者它的倍数,对吗?
如果我是对的,只是出于好奇,我能做些什么来让它变tar
小?
谢谢。