Files
abonnel-www/ce662705-eb9b-47b1-90f3-19e3c3633ed0/index.md
T
2026-05-16 19:19:59 +02:00

147 lines
3.5 KiB
Markdown

# tar
## Introduction
`tar` (*tape archive*) est l'outil standard sous Linux pour regrouper plusieurs fichiers et dossiers dans une seule archive, éventuellement compressée. Avant d'entrer dans les commandes, voici les options à connaître :
- `c` : créer (*create*) une archive
- `x` : extraire (*extract*) une archive
- `t` : lister (*table*) le contenu
- `v` : mode verbeux (*verbose*)
- `f` : indique le nom du fichier archive (*file*)
- `z` : compression gzip
- `j` : compression bzip2
- `J` : compression xz
## Comparaison des formats de compression
La taille d'une archive `tar` dépend fortement de l'algorithme de compression. Exemple avec un dossier `html` contenant des fichiers **HTML**, **CSS** et **JS** :
| Archive | Taille (octets) |
| -------- | --------------- |
| tar | 40 960 |
| tar.gz | 6 200 |
| tar.bz2 | 6 003 |
| tar.xz | 5 656 |
En règle générale : `gzip` est le plus rapide, `xz` offre le meilleur taux de compression, `bzip2` se situe entre les deux.
## tar : archiver sans compresser
Créer une archive à partir d'un ou plusieurs fichiers :
```
tar cvf archive.tar fichier1 fichier2…
```
Créer une archive à partir d'un dossier :
```
tar cvf archive.tar dossier/
```
> **Attention** : le chemin passé en argument est conservé tel quel dans l'archive. Pour archiver le contenu sans inclure le chemin parent, utilisez `-C` :
>
> ```
> tar cvf archive.tar -C /chemin/parent dossier
> ```
Extraire les fichiers d'une archive :
```
tar xvf archive.tar
```
Lister le contenu d'une archive :
```
tar tvf archive.tar
```
## tar.gz : compression gzip
Toutes les commandes utilisent l'option `z`.
Créer une archive compressée à partir de fichiers ou d'un dossier :
```
tar zcvf archive.tar.gz fichier1 fichier2…
tar zcvf archive.tar.gz dossier/
```
Créer une archive **sans** les informations de propriétaire et de groupe (utile pour produire une archive portable destinée à un autre système) :
```
tar zcvf archive.tar.gz . --owner=0 --group=0
```
> Pensez à documenter les droits attendus à l'extraction (par exemple via un script post-déploiement ou un `chown` explicite).
Extraire :
```
tar zxvf archive.tar.gz
```
Lister le contenu :
```
tar ztvf archive.tar.gz
```
Supprimer un fichier dans l'archive :
```
tar --delete -f archive.tar.gz chemin/du/fichier
```
## tar.xz : compression xz
Utilise l'option `J` (le meilleur taux de compression, mais le plus lent).
Créer une archive à partir de fichiers ou d'un dossier :
```
tar Jcvf archive.tar.xz fichier1 fichier2…
tar Jcvf archive.tar.xz dossier/
```
Extraire :
```
tar Jxvf archive.tar.xz
```
## tar.bz2 : compression bzip2
Utilise l'option `j` (minuscule).
Créer une archive à partir de fichiers ou d'un dossier :
```
tar jcvf archive.tar.bz2 fichier1 fichier2…
tar jcvf archive.tar.bz2 dossier/
```
Lister le contenu (filtré sur les fichiers `.txt`) :
```
tar tvf archive.tar.bz2 '*.txt'
```
Extraire :
```
tar jxvf archive.tar.bz2
```
## Récapitulatif
| Format | Création | Extraction | Lister |
| --------- | -------------- | -------------- | -------------- |
| tar | `tar cvf` | `tar xvf` | `tar tvf` |
| tar.gz | `tar zcvf` | `tar zxvf` | `tar ztvf` |
| tar.bz2 | `tar jcvf` | `tar jxvf` | `tar jtvf` |
| tar.xz | `tar Jcvf` | `tar Jxvf` | `tar Jtvf` |
Sur les versions récentes de `tar`, vous pouvez aussi omettre l'option de compression : `tar xvf archive.tar.gz` fonctionne, le format étant détecté automatiquement.