web-dev-qa-db-fra.com

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 (non compressé) de fichiers image. Le serveur 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 pu transférer le fichier .tar.gz sur notre site d'hébergement, mais lorsque je ssh dans mon répertoire et que j'essaie d'utiliser unzip, le message d'erreur suivant s'affiche:

[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?

778
EmmyS

Tapez man tar pour plus d'informations, mais cette commande devrait faire l'affaire:

tar -xvzf community_images.tar.gz

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

  • f: ce doit être le dernier drapeau de la commande, et le fichier --- f ile doit être immédiatement après. Il indique à tar le nom et le chemin du fichier compressé.
  • z: indique à tar de décompresser l'archive à l'aide de g z ip
  • x: tar peut collecter des fichiers ou e x les extraire. x fait ce dernier.
  • v: fait en sorte que tar parle beaucoup. V La sortie erbose vous montre tous les fichiers en cours d’extraction.
1302
djeikyb

Si vous souhaitez que les fichiers soient extraits vers une destination particulière, vous pouvez ajouter -C /destination/path/
Assurez-vous de créer le répertoire en premier, 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 dire tar à e X tract a F ile

gif of process done at terminal

Remarque: N'oubliez pas que vous pouvez rechercher dans les pages de manuel avec ? + terme à rechercher, puis n et N pour accéder à l'instance suivante ou précédente du terme recherché.

160
JorgeArtware

À un moment donné, tar a été mis à niveau pour une 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 fichier --- f ile doit être immédiatement après. Il indique à tar le nom et le chemin du fichier compressé.
  • x: e x extrait les fichiers.

Notez l'absence de trait d'union pour les indicateurs de commande. En effet, la plupart des versions de tar autorisent à la fois les options de style gnu et bsd (en résumé, gnu nécessite un trait d'union, mais pas bsd).

103
djeikyb

Se souvenir de tous les drapeaux pour tar peut être fastidieux. XKCD obligatoire:

enter image description here

C'est pourquoi j'ai créé mon propre petit script dans Python. Rapide, sale, cp- comme dans l'utilisation:

#!/usr/bin/env python3
import tarfile,sys,os
tf = tarfile.open(name=sys.argv[1],mode='r:gz')
where = '.'
if len(sys.argv) == 3:
    where = sys.argv[2]
tf.extractall(path=where)
tf.close()

Utilisez-le comme suit:

myuntar.py archive.tar

Voir aussi similaire script pour décompresser les archives Zip .

8
Sergiy Kolodyazhnyy

Si vous ne pouvez pas extraire le fichier .tar.gz en utilisant

tar -xvzf fileName.tar.gz

Essayez d’extraire avec

tar xf fileName.tar.gz
4
Shravan40

Réponse rapide:

tar -xvf  <.tar file> or <.tar.xz file>
tar -xzvf <.tar.gz file>
tar -xjvf <.tar.bz2 file>

[NOTE]:

  • -v Liste détaillée des fichiers traités.
  • -z Filtrer l'archive avec gzip.
  • -f Utilisez le fichier archive ou le périphérique ARCHIVE.
  • -x Extraire les fichiers d'une archive.
  • -j bzip2.
  • tar -xf archive.tar # Extrait tous les fichiers de archive.tar.
3
Benyamin Jafari

Vous pouvez le faire aussi dans un premier temps:

gunzip community_images.tar.gz

Ensuite, vous avez le fichier: community_images.tar

La deuxième étape serait:

tar -xvf community_images.tar

Et le fichier * .tar serait extrait.

0
dschinn1001

tar xvf fichier.tar.gz

  • x pour extrait
  • v pour verbose (liste de fichiers)
  • f pour le nom de fichier est le suivant

Toute version à distance moderne de tar doit détecter automatiquement que l'archive est compressée et ajouter "z" pour vous.

0
delt