Je tar un répertoire plein d'images JPEG:
tar cvfz myarchive.tar.gz mydirectory
Quand je décompose l'archive:
tar xvfz myarchive.tar.gz
Je reçois une erreur:
tar: Unexpected EOF in archive
En regardant la sortie, elle échoue au milieu d'une image JPEG particulière.
Qu'est-ce que je fais mal?
Intéressant. J'ai quelques questions qui peuvent signaler le problème.
1/Êtes-vous en train de délier sur la même plate-forme que celle que vous utilisez? Il peut s'agir de différentes versions de tar
(par exemple, GNU et old-unix)? S'ils sont différents, pouvez-vous décompresser sur la même case que vous avez goudronnée?
2/Que se passe-t-il lorsque vous lancez simplement gunzip myarchive.tar.gz? Est-ce que ça marche? Peut-être que votre fichier est corrompu/tronqué. Je suppose que vous remarquerez que la compression a généré des erreurs, oui?
Basé sur la source tar GNU tar, il n'imprimera ce message que si find_next_block()
retourne 0 prématurément, ce qui est généralement dû à une archive tronquée.
Peut-être avez-vous téléchargé le fichier en mode ascii au lieu du mode binaire? Sinon, cela pourrait aider.
$ gunzip myarchive.tar.gz
Et puis décompressez le fichier tar résultant en utilisant
$ tar xvf myarchive.tar
J'espère que cela t'aides.
J'ai eu un problème similaire avec les fichiers tar tronqués produits par un travail cron et la redirection standard vers un fichier a résolu le problème.
De parler à un collègue, cron crée un tuyau et limite la quantité de sortie qui peut être envoyée à la sortie standard. J'ai corrigé le mien en supprimant -v de ma commande tar, le rendant beaucoup moins détaillé et en gardant la sortie d'erreur au même endroit que le reste de mes tâches cron. Si vous avez besoin de la sortie tar verbeuse, vous devrez cependant rediriger vers un fichier.
Dans mon cas, j'avais démarré untar avant la fin du téléchargement du fichier tar.
J'ai eu une erreur similaire, mais dans mon cas, la cause était le changement de nom du fichier. Je créais un fichier compressé file1.tar.gz
et le mettre à jour à plusieurs reprises dans un autre fichier tar avec tar -uvf ./combined.tar ./file1.tar.gz
. J'ai eu l'erreur inattendue EOF après avoir décroché combined.tar
et essayer de décompresser file1.tar.gz
.
J'ai remarqué qu'il y avait une différence dans la sortie de file
avant et après goudronnage:
$file file1.tar.gz
file1.tar.gz: gzip compressed data, was "file1.tar", last modified: Mon Jul 29 12:00:00 2019, from Unix
$tar xvf combined.tar
$file file1.tar.gz
file1.tar.gz: gzip compressed data, was "file_old.tar", last modified: Mon Jul 29 12:00:00 2019, from Unix
Il semble donc que le fichier avait un nom différent lorsque j'ai créé à l'origine combined.tar
, et l'utilisation de la fonction de mise à jour tar n'écrase pas les métadonnées du nom de fichier compressé. La solution était de recréer combined.tar
à partir de zéro au lieu de le mettre à jour.
Je ne sais toujours pas exactement ce qui s'est passé, car changer le nom d'un fichier compressé ne le rompt pas normalement.