Eu tenho uma fita com um .tar.lzma
arquivo escrito nela. Como posso determinar o tamanho do .tar.lzma
arquivado como está ? Em outras palavras, estou procurando encontrar o tamanho do arquivo compactado, não o tamanho do descompactado .tar
que ele está armazenando - idealmente sem ter que copiar o arquivo da fita para um disco e verificar a partir daí.
A fita em questão (LTO-6) não está formatada com nenhum sistema de arquivos especial, como LTFS.
Meu sistema está usando o Debian 11 Bullseye no amd64, se for relevante mencionar isso.
.tar.lzma é realmente apenas um arquivo tar passado pelo
lzma
compressor, então não importa que seja um arquivo tar dentro.Portanto, lzma-file-format.txt contém todas as informações necessárias para analisar esse formato de arquivo; ele começa com um cabeçalho surpreendentemente simples:
…
1.1. Cabeçalho
(cada
+---+
um é um byte, observação)Portanto, não há informações de tamanho compactado aqui!
Você adivinha onde isso vai dar. https://github.com/jljusten/LZMA-SDK/blob/master/DOC/lzma-specification.txt aponta que
Então, LZMA é um decodificador de fluxo que informa
Portanto, não há nenhuma informação que você possa usar para saber o tamanho do seu arquivo compactado além de descompactá-lo (descartar seus dados descompactados).
(A propósito, essa é uma das razões pelas quais eu digo que
tar
é um formato de arquivo ruim. Isso não seria um problema se a compactação fosse feita dentro do contêiner de arquivo, não ao redor dele. Mas é como seus dados são, então não há nada inerentemente você pode fazer sobre isso ...)