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?
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 ipx
: 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.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
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é.
À 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).
Se souvenir de tous les drapeaux pour tar
peut être fastidieux. XKCD obligatoire:
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 .
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
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.-xf
archive.tar # Extrait tous les fichiers de archive.tar
.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.
tar xvf fichier.tar.gz
Toute version à distance moderne de tar doit détecter automatiquement que l'archive est compressée et ajouter "z" pour vous.