Risposte:
Dipende se succede con tutti i tar.gz
file o solo questo. Questo particolare file potrebbe essere corrotto e quindi non si aprirà correttamente. Se si utilizza tar per estrarre, è necessario utilizzare l' z
opzione, come ciò che è necessario quando un archivio è compresso con gzip: tar xzvf <file.tar.gz>
. In alternativa, vale anche la pena provare a estrarlo congunzip <file.tar.gz>
Per scoprire se il file è corrotto, esegui gzip -t <file.tar.gz>
; questo comando verificherà la presenza di errori nel file e, se presenti, dovrebbero apparire nel terminale. Questo dovrebbe dirti se il file è corrotto.
Se il file è valido e l'errore si ripresenta, significa che è probabilmente il problema noto con tar che si verifica quando un file non ne ha una coppia zero blocks
alla fine, come previsto da GNU tar. La soluzione a questo è aggiungere l' -i
opzione per ignorare il zero blocks
. Quindi usa tar ixzvf <file.tar.gz>
Il problema è documentato qui in dettaglio.
La stessa cosa mi è successa perché ho instradato sia stdout che stderr attraverso un canale che non separa stderr e stdout (una sessione terminale adb android).
In questo modo alcuni messaggi di errore sono finiti nel flusso. Questo era il comando errato:
Comando errato, la shell adb unisce semplicemente stderr e stdout localmente => garbage! :
adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar
Comando fisso:
adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar
Lo stesso accadrà se esegui un comando simile su SSH come questo veloce tar streaming su ssh se dimentichi di reindirizzare stderr su / dev / null:
ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz
L'altro giorno ho riscontrato questo errore nel tentativo di decomprimere un archivio che non è stato decompresso. La fonte del file non mi era nota, ma ho pensato che il creatore avrebbe potuto usare cat
per combinare più tar in uno solo. Ciò ha causato la lettura del marker zero di fine file da parte tar
dell'utilità nel mezzo di un archivio combinato, visualizzando in tal modo l'errore "Un blocco zero solo".
In questo caso --ignore-zeros
o l' -i
opzione potrebbe aiutare a sopprimere questi errori. Si prega di vedere man tar
o questo link come riferimento.
RequestTTY yes
nel vostro ssh_config. Può essere esplicitamente disabilitato con-T Disable pseudo-tty allocation.
Per me, l'errore eratar: Skipping to next header
originariamente, il blocco zero solitario si è verificato quando ho provato con--posix
..