Aller au contenu
Administration Linux medium

Maîtriser la commande tar sur Linux efficacement

12 min de lecture

Dans un système Linux, savoir manipuler des fichiers et des répertoires rapidement et efficacement est essentiel pour tout administrateur ou utilisateur avancé. La commande tar est l’un des outils les plus utilisés pour archiver, sauvegarder et transférer des données. Que ce soit pour automatiser une sauvegarde quotidienne, compresser des logs ou extraire des fichiers d’une archive distante, maîtriser tar permet de gagner un temps précieux et d’éviter bien des erreurs. C’est une compétence de base incontournable pour toute personne qui gère un serveur ou travaille régulièrement en ligne de commande.

La commande tar, diminutif de tape archive, a été conçue à l’origine pour sauvegarder des fichiers sur des bandes magnétiques. Aujourd’hui, elle reste un pilier dans les systèmes Unix/Linux pour regrouper plusieurs fichiers ou répertoires en une seule archive, tout en conservant leurs droits, dates, structures et propriétaires.

Son grand avantage ? Elle permet de travailler avec ou sans compression, de lister ou d’extraire des fichiers spécifiques sans devoir décompresser toute l’archive et s’utilise dans des scripts, des tâches automatisées, ou des transferts réseau.

Voici quelques cas concrets où tar est utile :

  • Sauvegarder le contenu d’un répertoire avant une mise à jour ;
  • Compresser des fichiers journaux trop volumineux ;
  • Transférer un projet complet à un autre serveur via SSH ;
  • Préparer des dépôts ou packages pour un déploiement.

Elle est donc incontournable dès que l’on parle de gestion de fichiers à grande échelle ou de scripting système.

La commande tar suit une structure simple mais puissante. Elle se compose d’options, du nom de l’archive et des fichiers ou répertoires à traiter.

Fenêtre de terminal
tar [options] [nom_archive] [fichiers_ou_dossiers]

Voici les options principales à connaître :

  • -c : crée une nouvelle archive (create)
  • -x : extrait une archive (extract)
  • -t : affiche le contenu d’une archive (list)
  • -f : spécifie le fichier d’archive à utiliser (file) — toujours en dernier parmi les options
  • -v : mode verbeux, affiche les fichiers traités (verbose)
  • -z : utilise gzip pour la compression/décompression
  • -j : utilise bzip2
  • -J : utilise xz

Exemples d’utilisation :

  • Créer une archive :

    Fenêtre de terminal
    tar -cvf archive.tar mon_dossier/
  • Créer une archive compressée avec gzip :

    Fenêtre de terminal
    tar -czvf archive.tar.gz mon_dossier/
  • Extraire une archive :

    Fenêtre de terminal
    tar -xvf archive.tar

Remarque : l’ordre des options est important, surtout pour -f, qui doit précéder immédiatement le nom du fichier archive.

En maîtrisant cette syntaxe de base, on peut ensuite passer à des cas d’usage plus avancés : exclusion de fichiers, sauvegardes automatiques, transferts, et plus encore.

Créer une archive avec tar est une opération fréquente, que ce soit pour faire une sauvegarde, transférer un répertoire complet ou simplement regrouper des fichiers. Voici les formes les plus courantes.

Cette commande crée une archive .tar contenant tous les fichiers d’un dossier :

Fenêtre de terminal
tar -cvf archive.tar mon_dossier/
  • -c : création
  • -v : affiche les fichiers archivés
  • -f : indique le nom de l’archive

Gzip est le format de compression le plus répandu avec tar. Il est rapide et bien supporté :

Fenêtre de terminal
tar -czvf archive.tar.gz mon_dossier/
  • -z : compression gzip

Bzip2 compresse mieux que gzip, mais il est plus lent. Utile pour les archives à long terme.

Fenêtre de terminal
tar -cjvf archive.tar.bz2 mon_dossier/
  • -j : compression bzip2

XZ offre la meilleure compression, mais c’est aussi la plus lente.

Fenêtre de terminal
tar -cJvf archive.tar.xz mon_dossier/
  • -J : compression xz

Il est aussi possible de cibler plusieurs fichiers à la fois :

Fenêtre de terminal
tar -czvf mes_fichiers.tar.gz fichier1.txt fichier2.log dossier/

Astuce : pour exclure certains fichiers ou répertoires lors de la création d’une archive, on peut utiliser l’option --exclude :

Fenêtre de terminal
tar --exclude='*.log' -czvf archive.tar.gz mon_dossier/

Créer une archive adaptée à son besoin, avec ou sans compression, est le premier pas vers une utilisation efficace de tar.

Extraire une archive est tout aussi important que la créer. Que l’on souhaite récupérer l’intégralité d’un backup ou seulement un fichier précis, tar permet une grande souplesse.

Pour extraire le contenu d’une archive .tar :

Fenêtre de terminal
tar -xvf archive.tar
  • -x : extraction
  • -v : mode verbeux
  • -f : fichier à extraire

Les options de compression sont nécessaires si l’archive a été compressée :

  • .tar.gz ou .tgz :

    Fenêtre de terminal
    tar -xzvf archive.tar.gz
  • .tar.bz2 :

    Fenêtre de terminal
    tar -xjvf archive.tar.bz2
  • .tar.xz :

    Fenêtre de terminal
    tar -xJvf archive.tar.xz

Plutôt que d’extraire dans le répertoire courant, on peut spécifier un dossier de destination avec l’option -C :

Fenêtre de terminal
tar -xvf archive.tar -C /chemin/vers/dossier/

Si l’on ne veut pas tout extraire, on peut viser un ou plusieurs fichiers précis :

Fenêtre de terminal
tar -xvf archive.tar chemin/vers/fichier.txt

Ou plusieurs fichiers à la fois :

Fenêtre de terminal
tar -xvf archive.tar fichier1.txt fichier2.log

Pour extraire uniquement certains types de fichiers :

Fenêtre de terminal
tar -xvf archive.tar --wildcards '*.jpg'

Cela est très pratique pour récupérer uniquement les images, les scripts .sh, ou tout autre format spécifique.

Avec ces commandes, on gagne un vrai contrôle sur ce que l’on extrait, où, et comment. C’est fondamental en environnement de production ou en cas de récupération ciblée de données.

Tar ne se limite pas à créer ou extraire : on peut aussi analyser, modifier, ou compléter une archive existante. Ces fonctions avancées permettent d’ajuster une archive sans repartir de zéro.

Avant d’extraire, il est souvent utile de voir ce qu’elle contient :

Fenêtre de terminal
tar -tvf archive.tar
  • -t : liste le contenu sans extraire
  • -v : affiche les droits, tailles, dates, etc.

Avec une archive compressée :

Fenêtre de terminal
tar -tzvf archive.tar.gz

On peut ajouter des fichiers, mais seulement si l’archive n’est pas compressée :

Fenêtre de terminal
tar -rvf archive.tar nouveau_fichier.txt
  • -r : append, ajoute à l’archive

Ajouter un dossier complet :

Fenêtre de terminal
tar -rvf archive.tar nouveau_dossier/

Supprimer des fichiers d’une archive (via --delete)

Section intitulée « Supprimer des fichiers d’une archive (via --delete) »

Attention : cette fonction ne marche que sur les archives non compressées :

Fenêtre de terminal
tar --delete -f archive.tar chemin/vers/fichier

Pour extraire uniquement certains types de fichiers :

Fenêtre de terminal
tar -xvf archive.tar --wildcards '*.sh'

On peut aussi combiner avec un répertoire :

Fenêtre de terminal
tar -xvf archive.tar --wildcards 'logs/*.log'

Il est possible de récupérer partiellement une archive incomplète :

Fenêtre de terminal
tar -xvf archive.tar --ignore-zeros

Cela permet parfois d’extraire une partie des fichiers même si l’archive est corrompue en fin de fichier.

Pour vraiment maîtriser la commande tar, rien ne vaut quelques scénarios concrets. Voici des exemples d’usage courant dans un environnement système ou DevOps.

Pour archiver tout un répertoire, y compris ses sous-dossiers et permissions :

Fenêtre de terminal
tar -czvf sauvegarde_$(date +%Y%m%d).tar.gz /etc/

Cela crée une archive nommée avec la date du jour, utile pour les sauvegardes journalières.

Sauvegarde incrémentale (avec --listed-incremental)

Section intitulée « Sauvegarde incrémentale (avec --listed-incremental) »

Créer un fichier d’état pour sauvegarder seulement ce qui a changé depuis la dernière sauvegarde :

Fenêtre de terminal
tar --listed-incremental=etat.snar -czvf backup.tar.gz /home/user/

À répéter régulièrement avec le même fichier etat.snar.

Pour envoyer un dossier à un serveur distant sans le stocker localement :

Fenêtre de terminal
tar -czf - mon_dossier/ | ssh user@serveur 'tar -xzf - -C /destination/'

Cette méthode est rapide et évite les fichiers temporaires.

Archiver et supprimer les fichiers .log vieux de plus de 7 jours :

Fenêtre de terminal
find /var/log -name "*.log" -mtime +7 -print | tar -czvf logs_ancien.tar.gz -T - --remove-files

Exemple de ligne à insérer dans une crontab pour faire une sauvegarde chaque nuit à 2h :

Fenêtre de terminal
0 2 * * * tar -czf /sauvegardes/backup_$(date +\%Y\%m\%d).tar.gz /home/utilisateur/

Cette commande peut aussi être intégrée à un script avec envoi par email, upload vers un cloud, etc.

Créer une archive avec tous les fichiers modifiés les 2 derniers jours :

Fenêtre de terminal
find . -type f -mtime -2 -print | tar -czvf modifs.tar.gz -T -

Ces cas d’usage permettent de passer d’une utilisation ponctuelle à une automatisation robuste, adaptée à un usage professionnel.

Maîtriser la commande tar, c’est aussi adopter des habitudes fiables pour éviter les erreurs, améliorer la lisibilité et faciliter la maintenance.

Avant d’extraire une archive, surtout si elle est volumineuse ou inconnue :

Fenêtre de terminal
tar -tvf archive.tar.gz

Cela permet d’éviter d’écraser des fichiers importants ou de polluer un répertoire avec des fichiers inattendus.

Une archive qui extrait des fichiers directement dans le répertoire courant est appelée une tarbomb. Pour éviter ça, archivez toujours un répertoire racine :

Fenêtre de terminal
tar -czvf mon_projet.tar.gz mon_projet/

Et pour l’extraction :

Fenêtre de terminal
mkdir test && tar -xvf archive.tar -C test/
  • gzip : rapide, supporté partout, bon compromis
  • bzip2 : plus de compression, mais plus lent
  • xz : compression maximale, très lent, idéal pour l’archivage long terme

Adaptez selon votre contexte : vitesse ou taille minimale ?

C’est indispensable pour s’y retrouver dans les sauvegardes :

Fenêtre de terminal
tar -czvf backup_$(date +%Y%m%d).tar.gz /etc/

L’ordre des options est important. Mettez toujours -f juste avant le nom de l’archive :

Fenêtre de terminal
tar -czvf archive.tar.gz dossier/
  • Oublier -f et avoir un message d’erreur confus
  • Essayer de modifier une archive compressée
  • Extraire une archive à la racine sans vérifier son contenu

En suivant ces pratiques, on évite la plupart des pièges classiques. On gagne aussi en lisibilité, en sécurité et en efficacité, surtout dans des scripts automatisés.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

10 questions
5 min.
80%

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Maîtriser la commande tar, c’est s’offrir un outil polyvalent pour gérer efficacement les fichiers sous Linux : sauvegarder, compresser, transférer ou restaurer en quelques lignes de commande. Que ce soit pour un usage ponctuel ou intégré dans des scripts d’automatisation, tar reste une compétence indispensable pour tout administrateur système ou utilisateur avancé.