Skip to content

Tar/fr

L'archivage consiste à créer un fichier unique qui contient plusieurs fichiers plus petits. L'archivage de données peut améliorer l'efficacité du stockage et des transferts de fichiers. Il est plus rapide pour le protocole de copie sécurisée (scp), par exemple, de transférer un seul fichier d'archive de taille raisonnable que des milliers de petits fichiers de taille totale équivalente.

La compression consiste à encoder un fichier de manière à ce que la même information soit contenue dans moins d'octets de stockage. L'avantage pour le stockage de données à long terme devrait être évident. Pour les transferts de données, le temps passé à compresser les données peut être contrebalancé par le temps économisé en déplaçant moins d'octets, comme décrit dans cette discussion sur la compression et le transfert de données du National Center for Supercomputing Applications des États-Unis.

Archiver des fichiers et des répertoires avec tar

L'utilitaire d'archivage principal sur tous les systèmes Linux et de type Unix est la commande tar. Elle regroupe un ensemble de fichiers ou de répertoires et génère un fichier unique, appelé fichier d'archive ou fichier tar. Par convention, un fichier d'archive porte l'extension de fichier .tar.

Lorsque vous archivez un répertoire avec tar, il inclura par défaut tous les fichiers et sous-répertoires qu'il contient, ainsi que les sous-sous-répertoires qu'ils contiennent, et ainsi de suite. Ainsi,

tar --create --file project1.tar project1
regroupera tout le contenu du répertoire project1/ dans le fichier project1.tar. Le répertoire original restera inchangé, ce qui peut doubler l'espace disque occupé!

Vous pouvez extraire les fichiers de l'archive en utilisant la même commande avec une option différente :

tar --extract --file project1.tar
S'il n'y a pas de répertoire portant le nom d'origine, il sera créé. Si un répertoire de ce nom existe et contient des fichiers ayant les mêmes noms que dans le fichier d'archive, ils seront écrasés.

Comment compresser et décompresser des fichiers tar

tar peut compresser un fichier d'archive en même temps qu'il le crée. Il existe plusieurs méthodes de compression parmi lesquelles choisir. Nous recommandons soit xz soit gzip, qui peuvent être utilisés comme suit :

tar --create --xz --file project1.tar.xz project1
tar --extract --xz --file project1.tar.xz
tar --create --gzip --file project1.tar.gz project1
tar --extract --gzip --file project1.tar.gz
Typiquement, --xz produira un fichier compressé plus petit (un "meilleur taux de compression") mais prendra plus de temps et utilisera plus de RAM pendant l'opération Quick Benchmark: Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO. --gzip ne compresse généralement pas autant, mais peut être utilisé si vous rencontrez des difficultés dues à une mémoire insuffisante ou à un temps d'exécution excessif lors de tar --create.

Vous pouvez également exécuter tar --create d'abord sans compression, puis utiliser les commandes xz ou gzip dans une étape séparée, bien qu'il y ait rarement une raison de le faire. De même, vous pouvez exécuter xz -d ou gzip -d pour décompresser un fichier d'archive avant d'exécuter tar --extract, mais encore une fois, il y a rarement une raison de le faire.

Options courantes de tar

Voici les options les plus courantes pour la commande tar. Il existe deux formes synonymes pour chacune : une forme à lettre unique précédée d'un seul tiret, et une forme en mot complet précédée d'un double tiret :

  • -c ou --create : Créer une nouvelle archive.
  • -f ou --file= : Indique le nom du fichier d'archive.
  • -x ou --extract : Extraire les fichiers de l'archive.
  • -t ou --list : Lister le contenu d'un fichier d'archive.
  • -J ou --xz : Compresser ou décompresser avec xz.
  • -z ou --gzip : Compresser ou décompresser avec gzip.

Les options à lettre unique peuvent être combinées avec un seul tiret, par exemple :

tar -cJf project1.tar.zx project1
est équivalent à
tar --create --xz --file=project1.tar.xz project1
Il existe de nombreuses autres options pour tar, et elles peuvent dépendre de la version que vous utilisez. Vous pouvez obtenir une liste complète des options disponibles sur votre système avec man tar ou tar --help. Notez en particulier que certains systèmes plus anciens pourraient ne pas prendre en charge la compression --xz.