No Linux Mint 22, criei versões GNU e POSIX de tar
s contendo 2 pequenos arquivos com:
$ 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
Surpreendentemente, os tar
s têm o mesmo tamanho de 10240 , enquanto meus arquivos são muito menores:
$ \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
ou seja, meus arquivos estão totalizando apenas 2186 bytes, o que, em contraste com ambos tar
os s que ocupam exatamente 10240 bytes, não pode ser simplesmente justificado pela inclusão de alguns metadados, como CRC e tal. Na minha humilde opinião, tem que haver algum tipo de preenchimento se eu o chamei corretamente.
Então, só para ficar claro, as respostas desta pergunta NÃO respondem à minha: O tamanho de um arquivo tar é maior que o tamanho dos arquivos arquivados
Pensando alto, parece que o tamanho mínimo de tar
é 10240, ou seus múltiplos, estou certo?
Se estiver certo, só por curiosidade, há algo que eu possa fazer para torná- tar
lo menor?
Obrigado.
Com GNU
tar
no Debian 12:Lendo sobre a
-b
opção:Então,
-b 20
daria a você blocos de tamanho 10240 bytes. Esse é o tamanho mínimo de umtar
arquivo GNU por padrão. Você pode usar-b
para definir um tamanho de bloco diferente, mas a maneira comum de tornartar
os arquivos menores é comprimindo-os com, por exemplo,gzip
.Então, na verdade, o que você está vendo é preenchimento.
Veja também o manual GNU
tar
: O fator de bloqueio de um arquivo .