La commande tar
sous Linux est souvent utilisée pour créer des fichiers d'archives .tar.gz
ou .tgz
, également appelés "tarballs". Cette commande dispose d'un grand nombre d'options, mais il suffit de se souvenir de quelques lettres pour créer rapidement des archives avec tar
. La commande tar
permet également d'extraire les archives résultantes.
La commande GNU tar
incluse dans les distributions Linux intègre la compression. Elle peut créer une archive .tar
et la compresser avec la compression gzip
ou bzip2
en une seule commande. C'est pourquoi le fichier résultant est un fichier .tar.gz
ou .tar.bz2
.
Compression d'un répertoire entier ou d'un fichier unique
Utilisez la commande suivante pour compresser un répertoire entier ou un seul fichier sous Linux. Elle compressera également tous les autres répertoires à l'intérieur d'un répertoire que vous aurez spécifié - en d'autres termes, elle fonctionne de manière récursive.
tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
Voici ce que signifient ces options :
- -c : Crée une archive.
- -z : Compresse l'archive avec
gzip
.
- -v : Affiche la progression dans le terminal pendant la création de l'archive, également connu sous le nom de mode "verbeux". Le
v
est toujours optionnel dans ces commandes, mais il est utile.
- -f : Vous permet de spécifier le nom de fichier de l'archive.
Supposons que vous ayez un répertoire nommé "stuff"
dans le répertoire courant et que vous souhaitiez l'enregistrer dans un fichier nommé archive.tar.gz
. Vous devez exécuter la commande suivante :
tar -czvf archive.tar.gz stuff
Ou, disons qu'il y a un répertoire dans /usr/local/something
sur le système actuel et que vous voulez le compresser dans un fichier nommé archive.tar.gz
. Vous devez exécuter la commande suivante :
tar -czvf archive.tar.gz /usr/local/something
Compression de plusieurs répertoires ou fichiers à la fois
Bien que tar soit souvent utilisé pour compresser un seul répertoire, vous pouvez également l'utiliser pour compresser plusieurs répertoires, plusieurs fichiers individuels, ou les deux. Il suffit de fournir une liste de fichiers ou de répertoires au lieu d'un seul. Par exemple, disons que vous voulez compresser le répertoire /home/ubuntu/Downloads
, le répertoire /usr/local/stuff
et le fichier /home/ubuntu/Documents/notes.txt. Il vous suffit d'exécuter la commande suivante :
tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt
Indiquez simplement le nombre de répertoires ou de fichiers que vous souhaitez sauvegarder.
Exclusion de répertoires et de fichiers
Dans certains cas, vous pouvez souhaiter compresser un répertoire entier, mais ne pas inclure certains fichiers et répertoires. Vous pouvez le faire en ajoutant l'option --exclude
pour chaque répertoire ou fichier que vous souhaitez exclure.
Par exemple, disons que vous voulez compresser /home/ubuntu
, mais pas les répertoires /home/ubuntu/Downloads
et /home/ubuntu/.cache
. Voici comment procéder :
tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache
L'option --exclude
est très puissante. Il ne prend pas en compte les noms de répertoires et de fichiers - il accepte en fait les motifs. Il y a beaucoup plus de choses que vous pouvez faire avec. Par exemple, vous pouvez archiver un répertoire entier et exclure tous les fichiers .mp4
avec la commande suivante :
tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4
Utilisez plutôt la compression bzip2
Bien que la compression gzip
soit le plus souvent utilisée pour créer des fichiers .tar.gz
ou .tgz
, tar prend également en charge la compression bzip2
. Cela vous permet de créer des fichiers compressés en bzip2
, souvent appelés fichiers .tar.bz2
, .tar.bz
, ou .tbz
. Pour ce faire, il suffit de remplacer le -z
pour gzip
dans les commandes présentées ici par un -j
pour bzip2
.
Gzip
est plus rapide, mais il compresse généralement un peu moins, de sorte que vous obtenez un fichier un peu plus volumineux. Bzip2
est plus lent, mais il compresse un peu plus, ce qui permet d'obtenir un fichier un peu plus petit. Gzip
est également plus répandu, certains systèmes Linux simplifiés prenant en charge gzip
par défaut, mais pas bzip2
. En général, cependant, gzip
et bzip2
sont pratiquement la même chose, et les deux fonctionnent de manière similaire.
Par exemple, au lieu du premier exemple que nous avons fourni pour compresser le répertoire stuff
, vous exécuteriez la commande suivante :
tar -cjvf archive.tar.bz2 stuff
Extraire un fichier Tar
Une fois que vous avez une archive, vous pouvez l'extraire à l'aide de la commande tar
. La commande suivante extrait le contenu de archive.tar.gz
dans le répertoire actuel.
tar -xzvf archive.tar.gz
C'est la même chose que la commande de création d'archive que nous avons utilisée ci-dessus, sauf que l'option -x
remplace l'option -c
. Cela indique que vous souhaitez extraire une archive au lieu d'en créer une.
Il se peut que vous souhaitiez extraire le contenu de l'archive dans un répertoire spécifique. Pour ce faire, ajoutez l'option -C
à la fin de la commande. Par exemple, la commande suivante extrait le contenu du fichier archive.tar.gz
dans le répertoire /tmp
.
tar -xzvf archive.tar.gz -C /tmp
Si le fichier est un fichier compressé en bzip2
, remplacez le "z"
dans les commandes ci-dessus par un "j"
.
Conclusion
Il s'agit de l'utilisation la plus simple possible de la commande tar
. La commande comprend un grand nombre d'options supplémentaires, qu'il est impossible d'énumérer toutes ici. Pour plus d'informations, exécutez la commande info tar
dans l'interpréteur de commandes pour afficher la page d'information détaillée de la commande tar
. Appuyez sur la touche q
pour quitter la page d'information lorsque vous avez terminé. Vous pouvez également consulter le manuel de la commande tar
en ligne.
Si vous utilisez un interface graphique Linux, vous pouvez également utiliser l'utilitaire de compression de fichiers ou le gestionnaire de fichiers fourni avec votre système pour créer ou extraire des fichiers .tar
. Sous Windows, vous pouvez extraire et créer des archives .tar
avec l'utilitaire gratuit 7-Zip
.