Comment décompresser un fichier .tar.gz sous Linux : Guide complet avec conseils avancés
Travailler avec des fichiers compressés est une réalité quotidienne dans tout environnement Linux. Parmi les formats les plus largement utilisés se trouve .tar.gz, un format en deux étapes qui combine tar pour l’archivage et gzip pour la compression. Que vous décompactiez du code source logiciel, restauriez des sauvegardes ou déployiez des fichiers de configuration sur un serveur VPS Hosting, savoir comment gérer les archives .tar.gz de manière efficace et sécurisée est une compétence Linux fondamentale.
Ce guide couvre tout, de la commande d’extraction de base aux techniques avancées pour les grandes archives, le renforcement de la sécurité et les meilleures pratiques de script.
Qu’est-ce qu’un fichier .tar.gz ?
Un fichier .tar.gz — souvent appelé tarball — est créé en deux étapes :
- tar regroupe plusieurs fichiers et répertoires dans une seule archive (
.tar) - gzip compresse cette archive pour réduire sa taille (
.tar.gzou.tgz)
Cas d’usage courants
- Distribution du code source logiciel
- Empaquetage des fichiers de configuration et des sauvegardes
- Archivage des fichiers journaux pour le stockage à long terme
- Transfert de grands arbres de répertoires entre serveurs
Exemple de nom de fichier : project-files.tar.gz
Commande d’extraction de base
La commande standard pour extraire un fichier .tar.gz est :
tar -xvzf file.tar.gzDécomposition des drapeaux
| Drapeau | Signification |
|---|---|
-x | Extraire les fichiers de l’archive |
-v | Mode verbeux — liste chaque fichier au fur et à mesure de son extraction |
-z | Décompresser à l’aide de gzip |
-f | Spécifie le nom du fichier à utiliser |
Cette seule commande gère la grande majorité des tâches d’extraction quotidiennes.
Extraire vers un répertoire spécifique
Par défaut, tar extrait les fichiers dans le répertoire de travail actuel. Pour rediriger la sortie vers un emplacement spécifique, utilisez le drapeau -C :
tar -xvzf file.tar.gz -C /path/to/target-directory> Remarque : Le répertoire cible doit déjà exister. Créez-le d’abord avec mkdir -p /path/to/target-directory si nécessaire.
Cette approche est particulièrement utile dans les scripts de déploiement automatisés ou lors de l’organisation de plusieurs archives sur un serveur de production.
Aperçu du contenu de l’archive avant extraction
Avant d’extraire une archive — en particulier une provenant d’une source inconnue — il est recommandé d’inspecter d’abord son contenu :
tar -tvzf file.tar.gzLe drapeau -t répertorie tous les fichiers et répertoires à l’intérieur de l’archive sans rien extraire. Cela vous aide à :
- Comprendre la structure interne du répertoire
- Éviter de remplacer accidentellement les fichiers existants
- Détecter les chemins suspects ou inattendus
Extraire des fichiers ou répertoires spécifiques
Vous n’avez pas toujours besoin d’extraire une archive entière. Pour extraire un seul fichier ou dossier, spécifiez son chemin exactement tel qu’il apparaît dans l’archive :
tar -xvzf file.tar.gz path/to/specific-file.txtPour trouver le chemin interne exact, exécutez d’abord la commande --list :
tar -tvzf file.tar.gz | grep filename> Important : Utilisez le chemin relatif affiché dans la liste d’archive, pas un chemin absolu commençant par /.
Considérations de sécurité lors de l’extraction d’archives non fiables
L’extraction de fichiers .tar.gz provenant de sources inconnues ou non fiables peut poser de sérieux risques de sécurité, notamment les attaques par traversée de répertoires où les archives malveillantes remplacent les fichiers système critiques. Appliquez ces protections :
Empêcher le remplacement de répertoires
tar --no-overwrite-dir -xvzf file.tar.gzSupprimer les composants de chemin de début
Le drapeau --strip-components supprime les niveaux de répertoires de début des chemins extraits, ce qui neutralise les tentatives d’injection de chemin absolu :
tar --strip-components=1 -xvzf untrusted-archive.tar.gzExtraire dans un répertoire isolé
Extrayez toujours les archives non fiables dans un répertoire sandbox dédié et inspectez le contenu avant de déplacer les fichiers vers leur destination finale :
mkdir /tmp/sandbox && tar -xvzf untrusted-archive.tar.gz -C /tmp/sandboxCes pratiques sont particulièrement critiques sur l’infrastructure partagée. Si vous gérez plusieurs sites ou clients, envisagez d’utiliser des environnements Shared Web Hosting avec des limites de permissions strictes.
Gestion efficace des grandes archives
Pour les archives de plusieurs gigaoctets, l’extraction standard peut sembler être une boîte noire. Ces techniques améliorent la visibilité et les performances.
Surveiller la progression avec pv
pv (pipe viewer) affiche une barre de progression en temps réel et la vitesse de transfert :
pv file.tar.gz | tar xzvf -Installez pv s’il n’est pas déjà disponible :
# Debian/Ubuntu
sudo apt install pv
# CentOS/RHEL/AlmaLinux
sudo dnf install pvDésactiver le mode verbeux pour une extraction plus rapide
Lors de l’extraction de très grandes archives, le drapeau -v peut ralentir les choses en imprimant des milliers de noms de fichiers sur le terminal. Supprimez-le pour de meilleures performances :
tar -xzf file.tar.gzUtiliser la décompression parallèle avec pigz
Pour les serveurs multi-cœurs, pigz remplace gzip par une implémentation parallèle et peut réduire considérablement le temps de décompression :
tar -I pigz -xf file.tar.gzDécompresser en deux étapes séparées
Parfois, vous avez besoin d’un contrôle plus fin — par exemple, lors de l’intégration dans un pipeline ou de l’inspection du fichier .tar intermédiaire avant le dépaquetage. Vous pouvez diviser le processus en deux commandes :
# Step 1: Decompress gzip to get a plain .tar archive
gunzip file.tar.gz
# Step 2: Extract the .tar archive
tar -xvf file.tarCette approche est utile quand :
- Vous voulez inspecter le
.tarbrut avant extraction - Votre pipeline traite les étapes
.taret.gzséparément - Vous devez transmettre le fichier
.tarà un autre outil
Créer une archive .tar.gz
Savoir comment créer des archives est tout aussi important que de les extraire. La syntaxe reflète l’extraction mais utilise -c (créer) au lieu de -x :
tar -czvf archive-name.tar.gz /path/to/directory/Exclure des fichiers ou répertoires spécifiques
tar -czvf archive.tar.gz /path/to/directory/ --exclude='*.log' --exclude='node_modules'Ceci est inestimable pour créer des packages de déploiement ou des sauvegardes propres sans encombrement inutile.
Automatisation des opérations .tar.gz dans les scripts
Sur les serveurs de production — que vous exécutiez un Dedicated Server ou un VPS géré — l’automatisation des opérations d’archive économise du temps et réduit les erreurs humaines.
Exemple : Script de sauvegarde automatisé
#!/bin/bash
BACKUP_DIR="/var/backups"
SOURCE_DIR="/var/www/html"
DATE=$(date +%Y-%m-%d)
ARCHIVE="$BACKUP_DIR/website-backup-$DATE.tar.gz"
mkdir -p "$BACKUP_DIR"
tar -czf "$ARCHIVE" --exclude='*.tmp' "$SOURCE_DIR"
echo "Backup created: $ARCHIVE"Planifiez ceci avec une tâche cron pour des sauvegardes quotidiennes entièrement automatisées :
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1Utilisation des gestionnaires d’archives GUI (Optionnel)
Si vous travaillez dans un environnement de bureau Linux, les outils graphiques offrent une alternative glisser-déposer :
| Environnement de bureau | Gestionnaire d’archives |
|---|---|
| GNOME | File Roller |
| KDE Plasma | Ark |
| Xfce | Thunar Archive Plugin |
Ces outils supportent .tar.gz nativement et conviennent à un usage occasionnel. Cependant, pour l’administration de serveurs, la ligne de commande reste l’approche la plus fiable et scriptable.
Référence rapide : Commandes tar essentielles
| Tâche | Commande |
|---|---|
| Extraire l’archive | tar -xvzf file.tar.gz |
| Extraire vers un répertoire | tar -xvzf file.tar.gz -C /target/ |
