tar: un blocco zero solitario a 343398


10

durante il tentativo di estrarre un file tar.gz nel terminale di Ubuntu si è verificato un errore nell'ultima frase qui è: tar: un blocco zero solitario a 343398

qual è la soluzione per questo problema ???

Risposte:


18

Dipende se succede con tutti i tar.gzfile o solo questo. Questo particolare file potrebbe essere corrotto e quindi non si aprirà correttamente. Se si utilizza tar per estrarre, è necessario utilizzare l' zopzione, 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 blocksalla fine, come previsto da GNU tar. La soluzione a questo è aggiungere l' -iopzione per ignorare il zero blocks. Quindi usa tar ixzvf <file.tar.gz>Il problema è documentato qui in dettaglio.


1

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


1
Buona pesca. E ' anche succede se si imposta RequestTTY yesnel vostro ssh_config. Può essere esplicitamente disabilitato con -T Disable pseudo-tty allocation.Per me, l'errore era tar: Skipping to next headeroriginariamente, il blocco zero solitario si è verificato quando ho provato con --posix..
eMPee584

0

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 catper combinare più tar in uno solo. Ciò ha causato la lettura del marker zero di fine file da parte tardell'utilità nel mezzo di un archivio combinato, visualizzando in tal modo l'errore "Un blocco zero solo".

In questo caso --ignore-zeroso l' -iopzione potrebbe aiutare a sopprimere questi errori. Si prega di vedere man taro questo link come riferimento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.