Respostas:
Depende se isso acontece com todos os tar.gz
arquivos ou apenas com este. Este arquivo específico pode estar corrompido e, portanto, não será aberto corretamente. Se estiver usando tar para extrair, você precisa usar a z
opção, já que é necessário quando um arquivo é compactado: tar xzvf <file.tar.gz>
. Como alternativa, também vale a pena tentar extraí-lo comgunzip <file.tar.gz>
Para descobrir se o arquivo está corrompido, execute gzip -t <file.tar.gz>
; este comando verifica o arquivo quanto a erros e, se houver algum, deve aparecer no terminal. Isso deve informar se o arquivo está corrompido.
Se o arquivo estiver correto e o erro ocorrer novamente, significa que provavelmente é o problema conhecido com o tar que ocorre quando um arquivo não possui um par zero blocks
no final, como espera o GNU tar. A solução para isso é adicionar a -i
opção de ignorar o zero blocks
. Então use tar ixzvf <file.tar.gz>
O problema está documentado aqui em detalhes.
O mesmo aconteceu comigo porque eu canalizei stdout e stderr através de um canal que não separa stderr e stdout (uma sessão de terminal adb do Android).
Dessa forma, algumas mensagens de erro acabaram no fluxo. Este foi o comando defeituoso:
Comando defeituoso, o shell adb apenas mescla stderr e stdout localmente => lixo! :
adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar
Comando fixo:
adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar
O mesmo acontecerá se você executar um comando semelhante sobre o SSH, como este tar rápido transmitido pelo ssh, se você esquecer de redirecionar o stderr para / dev / null:
ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz
No outro dia, recebi esse erro ao tentar descompactar um arquivo que não foi compactado em gzip. A origem do arquivo era desconhecida para mim, mas achei que o criador poderia usar cat
para combinar vários alcatrões em um único. Isso fez com que o marcador zero no final do arquivo fosse lido pelo tar
utilitário no meio de um arquivo combinado, exibindo o erro "Um bloco zero solitário".
Se for esse o caso, a opção --ignore-zeros
ou -i
pode ajudar a suprimir esses erros. Por favor, veja man tar
ou este link como uma referência.
RequestTTY yes
seu ssh_config. Pode ser desativado explicitamente com-T Disable pseudo-tty allocation.
Para mim, o erro eratar: Skipping to next header
originalmente, o bloco de zero solitário ocorreu quando eu tentei com--posix
..