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 ???
Cela dépend si cela se produit avec tous les tar.gz
fichiers 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' z
option, 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' -i
option pour ignorer le zero blocks
. Donc, utilisez tar ixzvf <file.tar.gz>
Le problème est documenté ici en détail.
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
RequestTTY yes
votre ssh_config. Peut être explicitement désactivé avec-T Disable pseudo-tty allocation.
Pour moi, l'erreur était à l'tar: Skipping to next header
origine, le seul bloc zéro s'est produit lorsque j'ai essayé avec--posix
..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
cat
pour combiner plusieurs goudrons en un seul. Cela a provoqué la lecture du marqueur zéro de fin de fichier par l'tar
utilitaire au milieu d'une archive combinée, affichant ainsi l'erreur "Un bloc zéro nul".Si tel est le cas, l' option
--ignore-zeros
ou-i
pourrait aider à supprimer ces erreurs. Veuillez voirman tar
ou ce lien comme référence.la source