Extraire un fichier tar.gz renvoie: "Cela ne ressemble pas à une archive tar."

29

J'ai un fichier tar.gz et je veux l'extraire en utilisant le terminal. J'ai utilisé les commandes suivantes: tar tvzf ldtp_3.5.0.orig.tar.gzet tar -xvzf ldtp_3.5.0.orig.tar.gz. Cependant, j'obtiens le même résultat pour les deux fichiers:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

La sortie de la commande file montre son fichier gzip:

$ file ldtp_3.5.0.orig.tar.gz 
ldtp_3.5.0.orig.tar.gz: gzip compressed data, from Unix

Je peux l'extraire en utilisant le bouton droit -> Extraire mais je veux le faire en utilisant le terminal. Quelqu'un peut-il me dire comment faire cela?

TheRookierLearner
la source

Réponses:

38

En regardant l'erreur que vous voyez couplée avec le fait que vous pouvez en effet décompresser, il dit que le fichier est une véritable archive TAR / Gzip, mais peut-être pas un TAR immédiat n'est créé après le Gzip.

Autrement dit, si vous l'avez téléchargé à partir d'un serveur Web, la compression Gzip est parfois appliquée au contenu Web au niveau du serveur pour accélérer le téléchargement du contenu. Mais s'il n'est pas correctement configuré sur le serveur pour ignorer le contenu déjà compressé comme celui-ci, il peut par inadvertance doubler les fichiers Gzip.

Dans cet esprit, je verrais si vous le décompressez simplement de la ligne de commande pour voir ce qui se passe. Utilisez une commande comme celle-ci:

gzip -d ldtp_3.5.0.orig.tar.gz

Et voyez quel est le fichier résultant. J'ai une drôle de sensation après avoir exécuté cette commande, vous ne verrez pas un ldtp_3.5.0.orig.tardans le répertoire mais plutôt un fichier nommé comme la source ldtp_3.5.0.orig.tar.gz- - mais peut-être que la modification a changé? Si tel est le cas, il est vraiment à double Gzip. Donc, à ce stade - après ce non-Gzip initial - vous pouvez exécuter la tarcommande que vous avez comme ceci:

tar -xvzf ldtp_3.5.0.orig.tar.gz

Et il devrait maintenant décompresser correctement l'archive TAR complète.

Une autre façon de faire quelque chose de similaire à ce processus en deux étapes est de tuyau la sortie gzipde la tarmanière suivante:

gzip -dc ldtp_3.5.0.orig.tar.gz | tar -xvzf -

Le cdans le gzipainsi que le -à la fin de la commande est la clé:

  • L' coption pour gzipindiquera gzipde décompresser le flux de sortie standard.
  • La -fin des tarmoyens de commande « utiliser l' entrée standard ». Ainsi , couplé avec la la -cdans gzip, le tube prend alors le courant sortie standard canalisé vers elle à partir de gzipet se connecter à l' entrée standard que dans tar.
JakeGould
la source
1
J'ai essayé la première commande gzip -d ldtp_3.5.0.orig.tar.gzet j'ai (curieusement) obtenu un .tarfichier. Cependant, quand j'ai essayé, tar -xvf ldtp_3.5.0.orig.tarj'ai eu une erreur disant: tar: v: Cannot open: No such file or directory tar: Error is not recoverable: exiting now
TheRookierLearner
@TheRookierLearner Alors, que se passe-t-il si vous deviez faire gzip -d ldtp_3.5.0.orig.tarle ldtp_3.5.0.orig.tar?
JakeGould
J'ai essayé gzip -d ldtp_3.5.0.orig.tar.gzet j'ai compris le message gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored gzip: on.gz: No such file or directory gzip: the.gz: No such file or directory gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored . Après cela, j'ai essayé tar -xvzf ldtp_3.5.0.orig.taret cela a fonctionné! Merci beaucoup!
TheRookierLearner