Illustration de la commande tar sous Linux : plusieurs fichiers regroupés en une archive unique sur un poste de travail

Commande tar sous Linux : créer, lister et extraire une archive

User avatar placeholder
Écrit par Vincent

29 juillet 2026

La commande tar regroupe plusieurs fichiers et dossiers dans une archive unique, avec ou sans compression. Trois options portent l’essentiel du travail : -c crée une archive, -t affiche son contenu, -x l’extrait. L’option -f désigne le fichier d’archive et se place toujours juste avant son nom.

L’essentiel
Créer une archive compressée : tar -czvf archive.tar.gz dossier/
Voir son contenu sans l’extraire : tar -tvf archive.tar.gz
Extraire : tar -xvf archive.tar.gz
La compression se déclare à la création. À la lecture, GNU tar reconnaît seul le format de l’archive qu’il ouvre.
Commande universelle sur Debian, Ubuntu, Fedora, Arch et openSUSE. Commandes et messages d’erreur vérifiés sur GNU tar 1.34 le 29 juillet 2026, conformément à la page de manuel tar(1) et au manuel officiel GNU.

Quelle commande tar utiliser selon votre besoin

Votre situation La commande
Vous avez un fichier .tar tar -xvf archive.tar
Vous avez un .tar.gz ou .tgz tar -xvf archive.tar.gz
Vous avez un .tar.bz2 tar -xvf archive.tar.bz2
Vous avez un .tar.xz tar -xvf archive.tar.xz
Vous avez un .tar.zst tar -xvf archive.tar.zst
Vous voulez voir le contenu avant d’extraire tar -tvf archive.tar.gz
Vous voulez créer une archive compressée tar -czvf archive.tar.gz dossier/
Vous voulez extraire ailleurs que dans le dossier courant tar -xvf archive.tar.gz -C /destination/

Les cinq premières lignes emploient exactement les mêmes options, quel que soit le format : c’est volontaire. À la lecture, vous n’avez pas à préciser la compression.

Si l’extension manque ou vous semble douteuse, identifiez le format avant toute chose :

file archive

À quoi sert la commande tar

Le nom vient de tape archive, « archiveur sur bande » : la commande tar Linux a été conçue pour écrire sur des bandes magnétiques. Elle assemble aujourd’hui fichiers et dossiers en un seul fichier, en conservant l’arborescence, les dates, les permissions et les propriétaires.

Tar n’assure pas lui-même la compression. Il la délègue à un programme externe — gzip, bzip2, xz ou zstd — que vous choisissez au moment de créer l’archive. D’où les doubles extensions comme .tar.gz : une archive tar, compressée par gzip.

Syntaxe de la commande tar

# Forme générale
tar OPÉRATION [OPTIONS] -f ARCHIVE [FICHIERS...]

# Exemples
tar -cvf archive.tar projet/
tar -xvf archive.tar.gz -C /destination/

Le nom de l’archive n’est pas un argument libre : c’est la valeur de -f. Sans cette option, tar écrit sur la sortie standard et le nom que vous pensiez donner à l’archive est interprété comme un fichier à archiver.

Option Rôle
-c Créer une archive
-x Extraire une archive
-t Lister le contenu sans extraire
-f Désigner le fichier d’archive
-v Afficher les fichiers traités
-z Compresser avec gzip
-j Compresser avec bzip2
-J Compresser avec xz
--zstd Compresser avec zstd
-a Choisir la compression d’après l’extension
-C Se placer dans un dossier avant d’agir
-p Restaurer les permissions d’origine
-r Ajouter un fichier à une archive
--exclude Exclure des fichiers à la création
--strip-components Retirer des niveaux de dossier à l’extraction
--one-top-level Extraire dans un dossier dédié

Attention à l’ordre. L’option -f doit être la dernière du groupe. Écrire tar -cfzv archive.tar.gz dossier/ ne déclenche pas d’erreur de syntaxe : -f avale les lettres suivantes, tar crée un fichier nommé zv, puis échoue avec tar: archive.tar.gz: Cannot stat: No such file or directory.

Créer une archive tar

Sans compression

tar -cvf archive.tar projet/

L’option -v affiche chaque élément traité :

projet/
projet/README.md
projet/logs/app.log
projet/src/a.txt

Avec compression

# gzip : le plus courant
tar -czvf archive.tar.gz projet/

# bzip2 : compresse davantage, plus lent
tar -cjvf archive.tar.bz2 projet/

# xz : compression maximale, le plus lent
tar -cJvf archive.tar.xz projet/

# zstd : bon rapport vitesse/taille
tar --zstd -cvf archive.tar.zst projet/

Plus simple à retenir, l’option -a déduit la compression de l’extension que vous donnez :

tar -cavf archive.tar.xz projet/

gzip reste le choix par défaut : rapide et lisible partout. xz produit les archives les plus petites, au prix d’un temps de compression bien supérieur, ce qui convient à l’archivage long terme. zstd offre un compromis intéressant sur les systèmes récents. Ces caractéristiques sont qualitatives : le gain réel dépend de la nature de vos données.

Deux réserves sur zstd : l’option --zstd suppose une version récente de GNU tar et le paquet zstd installé, absent de certaines installations minimales. Vérifiez avec tar --help | grep zstd.

Exclure des fichiers

tar --exclude='*.log' -czvf archive.tar.gz projet/

Les guillemets simples protègent le motif du shell, et leur nécessité dépend de la forme employée. Avec --exclude= collé au motif, le shell cherche un fichier correspondant au mot entier, n’en trouve aucun et laisse passer le motif intact. Mais dès que le motif forme un mot isolé — --exclude *.log, ou --wildcards *.conf à l’extraction — le shell le remplace par les fichiers du répertoire courant, et tar reçoit tout autre chose que ce que vous vouliez. Mettez les guillemets systématiquement : c’est la seule règle qui ne se retienne pas de travers.

Chemins absolus

Si vous archivez un chemin commençant par /, tar affiche :

tar: Removing leading `/' from member names

C’est un comportement normal, pas une erreur. Tar retire le / initial pour éviter qu’une extraction distraite n’écrase /etc ou /usr. Pour des chemins propres, placez-vous d’abord dans le dossier parent avec -C :

tar -czvf sauvegarde.tar.gz -C /var/www site/

Extraire une archive tar, tar.gz, tar.bz2 ou tar.xz

Infographie des 4 étapes pour extraire une archive avec la commande tar sous Linux : identifier le format, lister le contenu, extraire avec -C, vérifier le résultat


L’extraction de base

tar -xvf archive.tar.gz

Point souvent mal compris : l’option de compression est inutile à l’extraction. GNU tar identifie le format en lisant les premiers octets du fichier, ce qu’on appelle sa signature, et se rabat sur l’extension si nécessaire. La même commande traite .tar, .tar.gz, .tar.bz2, .tar.xz et .tar.zst.

Inutile, donc — mais attention, pas anodin. Une option qui ne correspond pas au format réel casse la commande :

$ tar -xzf archive.tar.bz2
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

Une seule exception documentée : quand l’archive arrive par un tube, tar ne peut pas revenir en arrière dans le flux pour analyser la signature. Il vous indique alors quoi faire :

tar: Archive is compressed. Use -z option
tar: Error is not recoverable: exiting now

Extraire dans un dossier précis

tar -xvf archive.tar.gz -C /chemin/destination/

Le dossier doit exister : tar ne le crée pas et renvoie Cannot open: No such file or directory. Sans -C, l’extraction se fait dans le répertoire courant et tout fichier de même nom est écrasé sans confirmation.

Éviter d’éparpiller les fichiers

Une archive dépourvue de dossier racine déverse son contenu en vrac dans le répertoire courant. C’est ce qu’on appelle une tarbomb. L’option --one-top-level crée automatiquement un dossier dédié, nommé d’après l’archive privée de ses suffixes de compression — projet.tar.gz donne projet :

tar -xvf archive.tar.gz --one-top-level

# Ou en imposant le nom du dossier
tar -xvf archive.tar.gz --one-top-level=extraction

Supprimer un niveau de dossier

Utile quand une archive téléchargée contient un dossier racine versionné dont vous ne voulez pas :

tar -xzf logiciel-3.2.1.tar.gz -C /var/www/html/ --strip-components=1

Extraire un fichier ou un motif

# Un fichier précis, chemin exact obligatoire
tar -xvf archive.tar.gz projet/README.md

# Tous les fichiers d'un type
tar -xvf archive.tar.gz --wildcards '*.conf'

Le chemin doit correspondre exactement à celui affiché par tar -tf. Sinon tar renvoie Not found in archive.

Lister le contenu sans extraire

tar -tvf archive.tar.gz

La sortie affiche permissions, propriétaire, taille et date :

drwxr-xr-x user/user  0 2026-07-29 12:05 projet/
-rw-r--r-- user/user  7 2026-07-29 12:05 projet/README.md
-rwx------ user/user 10 2026-07-29 12:05 projet/src/a.txt

Prenez l’habitude de lister avant d’extraire une archive dont vous ignorez la provenance.

tar -t ne teste pas l’intégrité d’un .tar. Sur une archive non compressée, tar ne lit que les en-têtes et saute les blocs de données : une corruption du contenu passe inaperçue et le code retour reste 0. Sur une archive compressée, en revanche, tar -tf archive.tar.gz > /dev/null ne renvoie 0 que si le flux se décompresse entièrement — là, le test est fiable. Pour un .tar, comparez une somme de contrôle avec sha256sum.

Modifier une archive existante

# Ajouter un fichier
tar -rvf archive.tar nouveau.txt

# Supprimer un membre
tar --delete -f archive.tar projet/obsolete.txt

Ces opérations sont impossibles sur une archive compressée. GNU tar refuse avec tar: Cannot update compressed archives. La restriction couvre -r, -u, --delete et -A. Pour modifier un .tar.gz : décompressez avec gunzip, modifiez le .tar, recompressez avec gzip. Notez que --delete agit sans demander confirmation — travaillez sur une copie.

Erreurs courantes avec tar

Message Cause Solution
Cannot stat: No such file or directory avec un fichier zv créé -f n’est pas la dernière option du groupe Réordonner en -czvf
Cannot update compressed archives -r, -u, -A ou --delete sur une archive compressée Décompresser, modifier, recompresser
Not found in archive Le chemin ne correspond pas à celui stocké Reprendre le chemin exact affiché par tar -tf
gzip: stdin: not in gzip format Option de compression inadaptée au format réel Retirer -z : l’auto-détection suffit
Unexpected EOF in archive Archive .tar tronquée Les fichiers antérieurs à la coupure restent extractibles
gzip: stdin: unexpected end of file Archive .tar.gz tronquée Retélécharger, vérifier avec sha256sum
Cannot open: No such file or directory après -C Le dossier de destination n’existe pas Le créer avec mkdir -p
Removing leading '/' from member names Chemin absolu archivé Avertissement normal, aucune action requise
Permissions modifiées à l’extraction L’umask s’applique par défaut hors root Extraire avec -p : tar -xpvf archive.tar
Propriétaires non restaurés --no-same-owner est le défaut hors root sudo tar -xpvf archive.tar

Tar renvoie 0 en cas de succès, 1 si des différences sont constatées ou si des fichiers ont changé pendant l’archivage, 2 pour une erreur fatale. Si le programme de compression échoue, tar propage son code de sortie.

Commandes complémentaires

Pour retrouver un fichier dans une archive volumineuse, combinez le listing avec la commande grep :

tar -tf archive.tar.gz | grep "config"

Sur une archive de plusieurs gigaoctets, -v devient illisible. Préférez un compteur de progression :

tar -czf sauvegarde.tar.gz projet/ --totals

Les permissions restaurées par -p sont celles stockées dans l’archive. Pour les modifier ensuite, reportez-vous à la commande chmod.

Questions fréquentes

Comment ouvrir un fichier .tar sous Linux ?

Utilisez tar -xvf archive.tar pour l’extraire, ou tar -tvf archive.tar pour afficher son contenu sans rien écrire sur le disque. La même syntaxe fonctionne pour les archives compressées.

Faut-il l’option -z pour décompresser un .tar.gz ?

Non. GNU tar détecte la compression à la lecture en analysant les premiers octets du fichier. tar -xvf archive.tar.gz suffit. L’option -z n’est nécessaire qu’à la création, ou lorsque l’archive transite par un tube.

Comment extraire une archive .tar.zst ?

tar -xvf archive.tar.zst, comme pour les autres formats. L’extraction exige que le paquet zstd soit installé sur votre système, ce qui n’est pas toujours le cas sur une installation minimale.

Quelle est la différence entre tar et zip ?

Tar assemble sans compresser et délègue la compression à un programme externe, d’où les doubles extensions comme .tar.gz. Zip fait les deux en une passe et compresse chaque fichier séparément. Tar conserve mieux les permissions et les propriétaires Unix, ce qui explique sa prédominance sous Linux.

Pourquoi tar affiche « Removing leading / » ?

Parce que vous archivez un chemin absolu. Tar retire le / initial pour que l’extraction se fasse dans le répertoire courant plutôt qu’à la racine du système. C’est une protection, pas une erreur.

Peut-on ajouter un fichier à une archive .tar.gz ?

Non, pas directement. GNU tar refuse toute modification d’une archive compressée. Il faut la décompresser avec gunzip, ajouter le fichier au .tar avec -r, puis recompresser avec gzip.

Conclusion

Retenez trois choses. Les options -c, -t et -x couvrent la quasi-totalité des usages, et le nom de l’archive suit toujours -f. La compression se déclare uniquement à la création : une seule commande d’extraction traite tous les formats. Enfin, une archive compressée ne se modifie pas, elle se reconstruit.

Deux réflexes évitent la majorité des dégâts : lister avec tar -tvf avant d’extraire une archive inconnue, et extraire avec -C dans un dossier dédié.

Pour aller plus loin, notre guide pour automatiser vos sauvegardes avec rsync et crontab montre comment planifier ces archives, et notre article pour libérer de l’espace disque traite de l’archivage des journaux volumineux.

Commandes et messages d’erreur vérifiés sur GNU tar 1.34 le 29 juillet 2026, d’après la page de manuel tar(1) et le manuel officiel GNU tar. Les options disponibles varient selon les versions : vérifiez la vôtre avec tar --version.

Vincent

Vincent est le créateur de MémoLinux. Venu de Windows par curiosité, il est resté sur Linux pour sa logique et le plaisir de comprendre ce qui se passe sous le capot. Il documente ici les commandes et les procédures qu’il utilise lui-même, avec leurs sources officielles et leur date de vérification.