tar: un bloque cero solitario en 343398

10

al intentar extraer un archivo tar.gz en la terminal de ubuntu, ocurrió un error en la última oración aquí: tar: Un bloque cero solitario en 343398

¿Cuál es la solución para este problema?

wael
fuente

Respuestas:

18

Depende de si sucede con todos los tar.gzarchivos o solo con este. Este archivo en particular podría estar dañado y, por lo tanto, no se abrirá correctamente. Si se usa tar para extraer, es necesario utilizar la zopción, ya que es necesario cuando se gzipped un archivo: tar xzvf <file.tar.gz>. Alternativamente, también vale la pena intentar extraerlo congunzip <file.tar.gz>

Para saber si el archivo está dañado, ejecute gzip -t <file.tar.gz>; Este comando verificará el archivo en busca de errores y, si se encuentran, deben aparecer en el terminal. Esto debería decirle si el archivo está dañado.

Si el archivo es sólido y se repite el error, significa que probablemente sea el problema conocido con tar que ocurre cuando un archivo no tiene un par zero blocksal final, como espera GNU tar. La solución a esto es agregar la -iopción de ignorar el zero blocks. Así que use tar ixzvf <file.tar.gz>El problema está documentado aquí en detalle.


fuente
1

Me ha sucedido lo mismo porque canalicé stdout y stderr a través de un canal que no separa stderr y stdout (una sesión de terminal adb de Android).

De esa manera, algunos mensajes de error terminaron en la transmisión. Este fue el comando defectuoso:

  • Comando defectuoso, adb shell solo combina stderr y stdout localmente => basura. :
    adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar

  • Comando fijo:
    adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar

Lo mismo sucederá si haces un comando similar sobre SSH como este streaming tar rápido sobre ssh si olvidas redirigir stderr a / dev / null:

ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz

ce4
fuente
1
Buena atrapada. Es también ocurre si se establece RequestTTY yesen su ssh_config. Se puede desactivar explícitamente -T Disable pseudo-tty allocation.Para mí, el error era tar: Skipping to next headeroriginalmente, se produjo el solitario bloque de cero cuando he intentado con --posix..
eMPee584
0

Recibí este error el otro día tratando de descomprimir un archivo que no estaba comprimido. El origen del archivo era desconocido para mí, pero pensé que el creador podría usarlo catpara combinar varios alquitranes en uno solo. Esto provocó que el marcador de cero al final del archivo fuera leído por la tarutilidad en el medio de un archivo combinado, mostrando así el error "Un bloque cero solitario".

Si este es el caso, entonces --ignore-zeroso -ila opción podría ayudar a suprimir estos errores. Consulte man taro este enlace como referencia.

Yerden
fuente