tar: Un seul bloc zéro à 343398


10

en essayant d'extraire un fichier tar.gz dans le terminal ubuntu, une erreur est survenue dans la dernière phrase, voici: tar: Un seul bloc zéro à 343398

quelle est la solution à ce problème ???

Réponses:


18

Cela dépend si cela se produit avec tous les tar.gzfichiers ou uniquement avec celui-ci. Ce fichier particulier peut être corrompu et ne s'ouvrira donc pas correctement. Si vous utilisez le goudron à l' extrait, vous devez utiliser l' zoption, car ce qui est nécessaire quand une archive est gzippés: tar xzvf <file.tar.gz>. Alternativement, il vaut également la peine de l'extraire avecgunzip <file.tar.gz>

Pour savoir si le fichier est corrompu, exécutez gzip -t <file.tar.gz>; cette commande vérifiera si le fichier contient des erreurs et, le cas échéant, elles devraient apparaître dans le terminal. Cela devrait vous indiquer si le fichier est corrompu.

Si le fichier est sain et que l'erreur se reproduit, cela signifie que c'est probablement le problème connu avec tar qui se produit lorsqu'un fichier n'en a pas de paire zero blocksà la fin, comme GNU tar s'y attend. La solution à cela consiste à ajouter l' -ioption pour ignorer le zero blocks. Donc, utilisez tar ixzvf <file.tar.gz>Le problème est documenté ici en détail.


1

La même chose m'est arrivée parce que j'ai dirigé à la fois stdout et stderr via un canal qui ne sépare pas stderr et stdout (une session de terminal Android adb).

De cette façon, certains messages d'erreur se sont retrouvés dans le flux. C'était la commande défectueuse:

  • Commande défectueuse, le shell adb fusionne simplement stderr et stdout localement => ordures! :
    adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar

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

La même chose se produira si vous exécutez une commande similaire sur SSH comme ce streaming tar rapide sur ssh si vous oubliez de rediriger stderr vers / dev / null:

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


1
Bonne prise. Cela se produit également si vous définissez RequestTTY yesvotre ssh_config. Peut être explicitement désactivé avec -T Disable pseudo-tty allocation.Pour moi, l'erreur était à l' tar: Skipping to next headerorigine, le seul bloc zéro s'est produit lorsque j'ai essayé avec --posix..
eMPee584

0

J'ai eu cette erreur l'autre jour en essayant de décompresser une archive qui n'était pas compressée. La source du fichier m'était inconnue mais j'ai pensé que le créateur pourrait utiliser catpour combiner plusieurs goudrons en un seul. Cela a provoqué la lecture du marqueur zéro de fin de fichier par l' tarutilitaire au milieu d'une archive combinée, affichant ainsi l'erreur "Un bloc zéro nul".

Si tel est le cas, l' option --ignore-zerosou -ipourrait aider à supprimer ces erreurs. Veuillez voir man tarou ce lien comme référence.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.