Question De quelle commande ai-je besoin pour décompresser / extraire un fichier .tar.gz?


J'ai reçu un énorme fichier .tar.gz d'un client contenant environ 800 Mo de fichiers image (non compressé). Le ftp de notre société d'hébergement est très lent. Il n'est donc pas pratique d'extraire tous les fichiers localement et de les envoyer via ftp. J'ai été capable de transférer le fichier .tar.gz vers notre site d'hébergement, mais lorsque je me connecte à mon répertoire et que j'essaie d'utiliser le décompression, cela me donne cette erreur:

[esthers@clients locations]$ unzip community_images.tar.gz
Archive:  community_images.tar.gz
  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note:  community_images.tar.gz may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

Quelle commande dois-je utiliser pour extraire tous les fichiers d'un fichier .tar.gz?


627
2018-02-08 22:50


origine




Réponses:


Type man tar pour plus d'informations, mais cette commande doit faire l'affaire:

tar -xvzf community_images.tar.gz

Pour expliquer un peu plus, tar collecté tous les fichiers dans un seul paquet, community_images.tar. Le programme gzip a appliqué la compression, d'où l'extension gz. La commande fait donc deux choses:

  • f: ce doit être le dernier drapeau de la commande, et le tar File doit être immédiatement après. Il indique à tar le nom et le chemin du fichier compressé.
  • z: dit à tar de décompresser l'archive en utilisant gzip
  • x: tar peut collecter des fichiers ou eXles traîner. x fait le dernier
  • v: fait beaucoup parler de tar. Verbose output vous montre tous les fichiers en cours d'extraction.

1058
2018-02-08 22:57



@Shiki J'ai vu votre modification proposée. Je ne pense pas que ce soit un changement approprié, je préfère la façon dont j'ai expliqué cet outil. je faire pense ton tar -xf la suggestion ferait une excellente réponse supplémentaire. - djeikyb
C'est l'une des meilleures explications parmi les millions de questions formulées de la même manière - JohnMerlino
@KasunSiyambalapitiya Par défaut, se retrouve dans le dossier en cours. Voir également man tar; Cherchez le -C option. Ou peut-être vérifier l'autre réponse - djeikyb
@nikoss j'ajoute le v passer tout le temps parce que je comme voir la liste des fichiers lors de l'extraction. l'enseignement cela prépare également le lecteur pour d'autres commandes tar comme tar -tvf foo.tar qui affiche le contenu de l'archive sans extraire. - djeikyb
Me fait penser à L'article de xckd sur le goudron.Je dois revenir à chaque fois. - mgarey


Si vous souhaitez que les fichiers soient extraits vers une destination particulière, vous pouvez ajouter -C /destination/path/
Assurez-vous de créer d'abord le répertoire, dans ce cas: ~ / Pictures / Community

Exemple:

mkdir ~/Pictures/Community
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

Vous pouvez facilement le mémoriser si vous envisagez de le dire le goudron doigt de pied X tracter un F ile

gif of process done at terminal

Remarque: Rappelez-vous que vous pouvez rechercher dans les pages de manuel avec ?+ terme à rechercher, puis n et N pour aller à l'instance suivante ou précédente du terme que vous recherchez.


130
2017-08-20 11:02



n'oublie pas C pour "change directory "! aussi, je pense qu’il est préférable de ne pas mélanger les options de tirets ps). - djeikyb
Pourquoi n'est-ce pas - comme tous les autres commandements? - Jan M.
J'adore ton indice 'tar to e X tract a File' - Nam G VU
1+ pour le gif animé - Nick Steele


À un moment donné tar a été mis à niveau vers la décompression automatique. Tout ce dont vous avez besoin maintenant est:

tar xf community_images.tar.gz

La même explication s'applique:

  • f: ce doit être le dernier drapeau de la commande, et le tar File doit être immédiatement après. Il indique à tar le nom et le chemin du fichier compressé.
  • x: eXtraitez les fichiers.

Notez l'absence de trait d'union pour les drapeaux de commande. Cela est dû au fait que la plupart des versions de tar autorisent les options de style gnu et bsd (de manière simpliste, gnu requiert un trait d'union, bsd ne le fait pas).


89
2017-12-31 23:54



Y a-t-il une documentation à ce sujet? J'ai cherché partout une référence à cela, je n'utilise jamais le drapeau -z et tout est compressé, donc je m'inquiétais si je n'avais pas compressé mes tarballs, haha. Merci. - neurosnap
@neurosnap voir le manuel gnu et du Manuel de bsd - djeikyb
Il aurait probablement été préférable de modifier votre réponse originale. - Seth♦
@Seth il se sent / senti suffisamment distinct pour être une réponse séparée, en particulier dans le contexte de l'édition destructive qui l'a provoqué. Je le repenserai après le travail, peut-être un moyen plus simple de fusionner que je le pensais. - djeikyb
@EnricoMariaDeAngelis bsd tar depuis au moins 2004 et gnu tar depuis au moins 2010 ont pris en charge la sélection automatique d'un décompresseur. il est possible qu'aucune version "récente" (du siècle quatre-vingt-dix +?) de goudron ne nécessite la sélection manuelle d'un décompresseur. - djeikyb


Au cas où vous ne pourriez pas extraire .tar.gz utiliser le fichier

tar -xvzf fileName.tar.gz

Essayez d'extraire en utilisant

tar xf fileName.tar.gz

4
2018-01-05 06:29



s'il s'agit d'un fichier tar compressé, la première commande fonctionnera toujours. si cela ne fonctionne pas, vous n'avez pas de fichier tar compressé. la dernière commande est une excellente recommandation pour les gens qui ne se soucient pas de l’algorithme de compression utilisé dans leur fichier tar. - djeikyb