Vous avez récupéré une archive tar ou tar.gz, vous voulez l’ouvrir proprement, ou vous devez empaqueter un dossier avant de le déplacer. La commande paraît simple, jusqu’au moment où l’archive recrée toute une arborescence au mauvais endroit ou écrase un fichier que vous vouliez garder.
Je vous conseille de traiter tar comme un outil d’archivage, pas comme une commande magique d’installation. Dans ce guide, on va créer une archive, la lister, l’extraire dans un dossier choisi et vérifier le résultat avant de toucher aux fichiers de production.

Tar sert à archiver, pas forcément à compresser
Le point à garder en tête : tar regroupe des fichiers et conserve leurs chemins. La compression vient souvent en plus, avec gzip, xz ou bzip2. C’est pour cela que vous croisez des fichiers en .tar, .tar.gz, .tgz, .tar.xz ou .tar.bz2.
Avant d’extraire une archive inconnue, ne lancez pas directement une commande au hasard dans votre dossier personnel ou dans /var/www. Listez son contenu. Vous verrez si elle contient un dossier racine propre, plusieurs fichiers à plat, ou des chemins plus longs que prévu.
tar -tf sauvegarde.tar
tar -tzf sauvegarde.tar.gz
tar -tJf sauvegarde.tar.xz
Le t liste le contenu. Le f indique le fichier d’archive. Les options z et J indiquent respectivement gzip et xz.
Créer une archive tar proprement
Pour créer une archive non compressée d’un dossier, placez-vous d’abord au bon niveau. C’est important, car tar enregistre les chemins que vous lui donnez.
cd /home/nathan/projets
tar -cf site.tar site
Cette commande crée site.tar avec le dossier site à l’intérieur. Si vous l’extrayez plus tard, vous récupérerez un dossier site/, pas une dispersion de fichiers dans le répertoire courant.
Pour créer une archive compressée en gzip, ajoutez z :
tar -czf site.tar.gz site
Pour xz, souvent plus compact mais plus lent, utilisez J :
tar -cJf site.tar.xz site
Sur un serveur, je préfère parfois une archive gzip simple. Elle se crée vite, elle se relit partout, et elle suffit largement pour déplacer un dossier de configuration ou préparer une sauvegarde ponctuelle.
Éviter les chemins absolus dans une archive
Une mauvaise habitude consiste à archiver un chemin absolu sans réfléchir :
tar -czf site.tar.gz /var/www/site
Tar sait généralement retirer le / initial et vous avertir, mais ce n’est pas la meilleure base pour un transfert propre. Vous risquez surtout de ne plus savoir exactement où les fichiers vont ressortir à l’extraction.
Je préfère utiliser -C pour dire clairement à tar où se placer avant de lire les fichiers :
tar -czf /tmp/site.tar.gz -C /var/www site
Ici, l’archive contient site/, pas var/www/site/. C’est plus lisible, plus portable, et beaucoup moins pénible à extraire sur une autre machine.
Extraire une archive dans le bon dossier
Pour extraire une archive .tar dans le dossier courant :
tar -xf site.tar
Pour une archive gzip :
tar -xzf site.tar.gz
Mais dans la pratique, je vous recommande souvent de préparer un dossier vide et d’extraire dedans. Vous voyez immédiatement ce que l’archive contient, sans polluer le répertoire courant.
mkdir -p /tmp/test-extraction
tar -xzf site.tar.gz -C /tmp/test-extraction
find /tmp/test-extraction -maxdepth 2 -type f | head
Cette méthode évite une bonne partie des mauvaises surprises, surtout avec une archive téléchargée ou envoyée par quelqu’un d’autre.
Voir ce qui va être écrasé avant d’extraire
Tar peut remplacer des fichiers existants si les chemins correspondent. Sur un poste de test, ce n’est pas dramatique. Sur un dossier applicatif, ça peut vite devenir une vraie galère.
Avant d’extraire dans un dossier qui contient déjà des fichiers, listez l’archive puis comparez avec la destination :
tar -tzf site.tar.gz | head
ls -la /var/www/site
Si vous voulez tester sans mélanger les fichiers, gardez le réflexe du dossier temporaire :
rm -rf /tmp/test-extraction
mkdir -p /tmp/test-extraction
tar -xzf site.tar.gz -C /tmp/test-extraction
diff -qr /tmp/test-extraction/site /var/www/site
Le diff -qr ne remplace pas une vraie stratégie de sauvegarde, mais il donne déjà une idée claire des fichiers différents.
Extraire sans recréer tout le premier dossier
Certains projets sont livrés avec un dossier racine du type app-1.4.2/. Si vous voulez récupérer uniquement son contenu dans une destination précise, --strip-components=1 peut être utile.
mkdir -p /tmp/app
tar -xzf app-1.4.2.tar.gz -C /tmp/app --strip-components=1
Attention : n’utilisez pas cette option sans avoir listé l’archive avant. Si l’archive ne contient pas le niveau de dossier attendu, vous pouvez obtenir un résultat différent de ce que vous aviez en tête.
Exclure un dossier d’une archive
Pour sauvegarder un dossier applicatif, vous n’avez pas toujours envie d’inclure les caches, les logs volumineux ou les dépendances régénérables. L’option --exclude permet de garder l’archive plus propre.
tar -czf site.tar.gz --exclude='site/cache' --exclude='site/logs' site
Si vous préparez une vraie sauvegarde, ne remplacez pas une synchronisation rsync maîtrisée par une archive faite à la main. Tar est pratique pour empaqueter, transporter ou figer un dossier. Pour une sauvegarde régulière, il faut aussi penser rotation, test de restauration et stockage séparé.
Tar.gz à installer : ne confondez pas archive et programme
Un fichier .tar.gz peut contenir un logiciel, mais cela ne veut pas dire qu’il s’installe toujours avec la même commande. Parfois il contient un binaire prêt à lancer, parfois un script, parfois du code source à compiler.
Si votre objectif est vraiment l’installation d’un logiciel téléchargé sous forme tar.gz, commencez par lire le contenu, le fichier README ou la documentation de l’éditeur. J’ai détaillé ce cas à part dans le guide installer un fichier tar.gz sous Linux sans lancer des commandes au hasard.
Avant de restaurer l’archive
Avant de déplacer ou restaurer une archive, contrôlez au minimum ces points :
- le contenu exact avec
tar -tf,tar -tzfoutar -tJf; - le dossier de destination avec
pwdetls -la; - une extraction de test dans
/tmpquand l’archive vient d’une source externe ; - les droits et propriétaires après extraction avec
ls -l; - les fichiers modifiés avec
diff -qrsi vous restaurez par-dessus un dossier existant.
Si vous devez ensuite renommer ou déplacer des fichiers extraits, faites-le proprement avec la commande mv, pas en bricolant une extraction dans le mauvais dossier. Une archive tar bien préparée doit vous faire gagner du temps, pas vous laisser avec une arborescence à réparer à la main.
Pour aller plus loin, vous pouvez aussi consulter le manuel GNU tar et la page tar(1) de man7.org. Elles sont moins digestes qu’un guide pratique, mais très utiles dès que vous touchez aux options avancées.