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?
Depende de si sucede con todos los tar.gz
archivos 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 z
opció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 blocks
al final, como espera GNU tar. La solución a esto es agregar la -i
opción de ignorar el zero blocks
. Así que use tar ixzvf <file.tar.gz>
El problema está documentado aquí en detalle.
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
RequestTTY yes
en su ssh_config. Se puede desactivar explícitamente-T Disable pseudo-tty allocation.
Para mí, el error eratar: Skipping to next header
originalmente, se produjo el solitario bloque de cero cuando he intentado con--posix
..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
cat
para combinar varios alquitranes en uno solo. Esto provocó que el marcador de cero al final del archivo fuera leído por latar
utilidad en el medio de un archivo combinado, mostrando así el error "Un bloque cero solitario".Si este es el caso, entonces
--ignore-zeros
o-i
la opción podría ayudar a suprimir estos errores. Consulteman tar
o este enlace como referencia.fuente