La commande TAR est une commande de base Linux qui vous permet de créer des fichiers archives.
C'est à dire regrouper plusieurs fichiers et de les placer dans un fichier d'archive.
Tar ne gère pas la compression mais on peut lui associer les algorithmes gzip ou bzip. pour créer des archives compressées comme .tar.gz, .tar.bz2 ou tar.tbz.
Dans ce tutoriel je vous montre comment utiliser la commande tar à l'aide de multiples exemples.
Comment utiliser la commande tar
GNU tar est un programme d'archivage conçu pour stocker plusieurs fichiers dans un seul fichier (une archive), et de manipuler ces archives. L'archive peut être un fichier régulier ou un dispositif (par exemple un lecteur de bande, d'où le nom du programme, ce qui signifie bande archiveur), qui peut être située soit au niveau local ou sur une machine distante.
Voici la syntaxe de la commande tar :
Tar [Options] [Fichier d'archives] [Fichier ou répertoire à archiver]
OPTIONS | DESCRIPTION |
-c | Crée des archives |
-x | Extraire l'archive |
-f | Crée des archives avec le nom de fichier donné |
-t | Affiche ou répertorie les fichiers dans le fichier archivé |
-u | Archive et ajoute à un fichier d'archive existant |
-v | Affiche les informations verboses |
-a | Concaténer les fichiers d'archive |
-z | Zip, indique la commande tar qui crée un fichier de goudron à l'aide de GZIP |
-j | Filtrez le fichier TAR d'archive à l'aide de TBZIP |
-w | Vérifiez un fichier d'archive |
-r | Mettre à jour ou ajouter un fichier ou un répertoire dans le fichier .tar existant déjà |
-C | dir : Passez à REPERTOIRE avant d'effectuer toute opération |
--exclude | Exclure les fichiers correspondant à PATTERN / REPERTOIRE / NOM |
--wildcards | Demande à tar de traiter les arguments de ligne de commande comme des modèles de globulation |
Pour utiliser et spécifier une option, spécifiez directement celles-ci avant le nom du fichier archive avec ou sans le caractère -.
Ainsi les deux utilisations suivantes sont équivalentes :
tar cvzf fichier.tar.gz *.txt
tar -cvzf fichier.tar.gz *.txt
Enfin, sachez que l'on peut aussi séparer les options, par exemple :
tar -cvz -f fichier.tar.gz *.txt
Enfin les extensions utilisées sont en général :
- .tar : fichier tar sans compression
- .tar.gz : fichier tar compressé à l'aide de gzip
- .tar.bz2 ou .tar.tbz : fichier tar compressé avec bzip2
La commande tar : utilisations et exemples
Créer un un fichier tar non compressé à l'aide d'option -cvf
Pour créer un fichier archive tar, on utilise l'option cvf en spécifiant le nom du fichier tar puis les fichiers à regrouper.
Par exemple pour créer le fichier.tar pour regrouper les fichiers Ubuntu.txt et monbeaufichier.txt :
tar cvf fichier.tar Ubuntu.txt monbeaufichier.txt
Fichier.tar n'est pas compressé, il regroupe simplement tous les fichiers dans un fichier archive unique.
Utilisez le caractère joker pour viser plusieurs fichiers à la fois.
Par exemple pour regrouper tous les fichiers texte dans fichier.tar, on utilise *.txt :
tar cvf fichier.tar *.txt
Là aussi on peut spécifier plusieurs entrées, par exemple pour regrouper les fichier txt et doc :
tar cvf fichier.tar *.txt *.doc
Il est tout à fait possible de spécifier un répertoire pour regrouper tous les fichiers qui s'y trouvent.
Par exemple pour regrouper les fichiers du /home dans un fichier home.tar :
tar cvf home.tar /home
Compresser un fichier TAR avec GZIP en utilisant l'option -z
Pour compresser un fichier tar en utilisant gzip, ajoutez l'option -z.
Ainsi pour créer fichier.tar.gz afin de regrouper et compresser les fichiers txt :
tar cvzf fichier.tar.gz *.txt
Extraire et décompresser un fichier .tar.gz avec l'option -xvzf
Pour extraire et décompresser le contenu d'un fichier compressé avec gzip, utilisez l'option -xvfz.
On parle aussi d'Untar un fichier.
Par exemple pour décompresser fichier.tar.gz :
tar xvzf fichier.tar.gz
Compresser un fichier tar avec bzip2 en utilisant l'option -j
Au lieu d'utiliser l'algorithme gzip, vous pouvez aussi utiliser la compression bzip2.
Pour cela, on utilise l'option -j à la place de -z.
Par exemple pour compresser et regrouper tous les fichiers .txt dans fichier.tar.bz :
tar cvjf fichier.tar.bz2 *.txt
Extraire et décompresser un fichier .tar.bz avec l'option -xvjf
Enfin pour Extraire et décompresser le contenu d'un fichier tar.gz, on utilise l'option -xvfz.
Par exemple pour décompresser fichier.tar.bz :
tar xvjf fichier.tar.bz2
Extraire des fichiers sur un répertoire ou un chemin spécifique
Nous pouvons extraire les fichiers dans un répertoire spécifié à l'aide du paramètre -C.
Par exemple pour extraire sauvegarde.tar.gz vers le répertoire /repertoire/sousrepertoire/ :
tar -xvzf sauvegarde.tar.gz -C /repertoire/sousrepertoire/
Attention la commande TAR ne crée aucun fichier ou dossier.
Extraire plusieurs fichiers avec -wildcards
Pour extraire de multiples fichiers, vous pouvez utiliser l'option -wildcards.
Par exemple pour extraire que les fichiers avec l'extension .mp3 :
tar -xvf Musique.tar.gz –wildcards "*.mp3"
Extraire un fichier spécifique d'un fichier tar
Pour extraire un seul fichier sur une archive, ajoutez simplement le nom du fichier après la commande comme celle-ci.
tar -xz -f Musique.tar.gz "./musique/1.mp3"
Pour extraire plus d'un fichier, spécifiez les suivants l'un après l'autre :
tar xvf file.tar "fichierA" "fichierB" "fichierC"
Par exemple pour extraire 1.mp3, 2.mp3 et 3.mp3 :
tar -xv -f Music.tar.gz "./musique/1.mp3" "./musique/2.mp3" "./musique/3.mp3"
Bien sûr cela fonctionne en spécifiant un répertoire pour extraire le contenu complet d'un repertoire.
Exclure des fichiers ou répertoire dans un fichier tar
Lorsque vous devez compresser un répertoire entier avec la commande TAR et vous ne souhaitez pas inclure des fichiers et des répertoires spécifiques, vous pouvez utiliser l'option -exclude de la commande tar.
Par exemple pour exclure le répertoire /docs.
tar cvzf project.tar.gz --exclude=/docs
Vous pouvez spécifier plusieurs options --exclude l'une à la suite de l'autre.
Lister le contenu d'un fichier à l'aide de l'option -tvf
Pour énumérer le contenu d'une archive tar sans l'extraire, nous pouvons utiliser l'option -t :
tar tvf fichier.tar.gz
L'option verbeuse -v fournira plus de détails sur chaque fichier. Pour les fichiers tar.bz2 / bzip, nous devons utiliser l'option -jv.
Rechercher un fichier dans un fichier tar avec grep
Pour un trouver un fichier spécifique dans un fichier tar, nous pouvons utiliser la commande grep en sortie de tuyau :
tar tvzf fichier.tar.gz | grep superfichier.txt
Mettre à jour le fichier tar
En utilisant l'option -r, tar ajoute des fichiers aux archives existantes, sans en créer une nouvelle.
tar rvf fichier.tar *.txt
La principale chose à prendre conscience de cette option ne fonctionne qu'avec des archives normales et non avec les archives comprimées.
Cependant, cela peut être fait en effectuant plusieurs étapes simples.
Utilisez la commande gunzip pour décompresser les archives, ajoutez le fichier à l'archive et enfin compressez à nouveau le contenu.
gunzip fichier.tar.gz
tar -rf fichier.tar ./doc/supertexte.txt
gzip fichier.tar
Préserver les dates de fichiers et permissions de fichiers
Par défaut, TAR conserve les autorisations de fichiers et la propriété lors de la création de l'archive.
Pour extraire les autorisations et la propriété des fichiers, vous devrez exécuter tar en root lors de l'extraction, car le changement de dépose des fichiers nécessite généralement des privilèges superutilisateurs.
Les options suivantes peuvent aussi être utilisées :
- --same-owner : essayez d'extraire des fichiers avec la même propriété que d'exister dans l'archive (valeur par défaut pour superutilisateur)
- -p, --preserve-permissions, --same-permissions : Extraire des informations sur les autorisations de fichier (par défaut pour superutilisateur)
- --no-same-owner : Extraire des fichiers comme vous-même (** Par défaut pour les utilisateurs ordinaires **)
- --atime-preserve : préservera l'heure d'accès, mais les temps de création et de modification ne seront généralement pas préservés.
sudo tar --atime-preserve -cvpf archive.tar *
Transférer des fichiers tar par SSH
Comment utiliser la commande tar sur une session SSH sécurisée exécutée sur un système Linux ou Unix?
Plusieurs syntaxes sont possibles pour transférer un fichier tar via SSH.
Voici la première :
ssh utilisateur@ip tar czf - /source-repertoire/ /destination/fichier.tar.gz
Deuxième syntaxe :
ssh utilisateur@ip 'cd /source-repertoire/ tar -cf - fichier | gzip fichier.tar.gz
L’article La commande tar : utilisations et exemples est apparu en premier sur malekal.com.
0 Commentaires