CodeGym /Cours /Docker SELF /Archivage et compression des fichiers : commandes `tar`, ...

Archivage et compression des fichiers : commandes `tar`, `gzip`, `zip`

Docker SELF
Niveau 6 , Leçon 4
Disponible

Archivage et compression des fichiers : commandes tar, gzip, zip

1. Notion d'archivage et de compression

Qu'est-ce que l'archivage et pourquoi en a-t-on besoin ?

Imagine une armoire pleine de livres. Pour les ranger de manière compacte, tu pourrais les mettre dans une boîte (archivage) et les attacher avec une corde pour un stockage plus serré (compression). Dans le monde informatique, l'archivage, c'est le processus de regroupement de plusieurs fichiers dans un seul conteneur (archive), et la compression, c'est la réduction de sa taille.

Mais pourquoi c'est utile ? Voici quelques exemples :

  • Stockage de données : En emballant des fichiers dans une archive, tu peux facilement les déplacer ou les copier comme un seul fichier.
  • Transmission de données : Grâce à la compression, les données prennent moins de place, ce qui accélère leur transfert sur le réseau.
  • Backup : L'archivage permet de protéger les données et simplifie leur restauration.

Au fait, est-ce que t'as déjà essayé d'envoyer 1000 fichiers par mail ? Sans archivage, c'est plus une torture qu'autre chose !


2. Commande tar : création et gestion des archives

C'est quoi tar ?

tar est un utilitaire pour archiver des fichiers sous Linux. En soi, tar ne compresse pas les fichiers, il les assemble seulement dans un seul fichier. Si tu veux compresser un fichier, tu peux l'utiliser avec une méthode de compression (gzip, bzip2, etc.).

Syntaxe générale

tar [options] <archive> <fichiers/dossiers>

Options principales

  • -c: création d'une nouvelle archive.
  • -v: affichage détaillé des opérations (te montre tous les fichiers ajoutés).
  • -f: spécifie le nom de l'archive.
  • -x: extraction des fichiers de l'archive.
  • -t: affichage du contenu de l'archive.

Exemples d'utilisation

1. Création d'une archive

tar -cvf archive.tar file1.txt file2.txt
  • Crée une archive archive.tar à partir de deux fichiers file1.txt et file2.txt.
  • -c: création d'une nouvelle archive.
  • -v: affiche tout le processus d'ajout des fichiers dans le terminal.
  • -f: spécifie que le nom de l'archive est archive.tar.

2. Archivage d'un dossier

tar -cvf project.tar /home/user/project
  • Crée une archive project.tar qui inclut tout le dossier /home/user/project.

3. Extraction d'une archive

tar -xvf archive.tar
  • Décompresse l'archive archive.tar dans le répertoire actuel.

4. Affichage du contenu d'une archive

tar -tvf archive.tar
  • Affiche la liste des fichiers et des dossiers dans l'archive.

3. Compression avec gzip

Qu'est-ce que fait gzip ?

Si tar est une boîte, alors gzip est un sac sous vide qui réduit sa taille. gzip réduit les données en utilisant des algorithmes de compression, ce qui en fait un outil idéal pour économiser de l'espace.

Syntaxe générale

gzip [options] <fichier>

Exemples d'utilisation

1. Compression d'un fichier

gzip file1.txt
  • Après exécution, la commande transformera le fichier file1.txt en file1.txt.gz.

2. Décompression d'un fichier

gunzip file1.txt.gz
  • Restaure le fichier original file1.txt.

3. Archivage et compression avec tar et gzip

tar -czvf archive.tar.gz file1.txt file2.txt
  • Crée une archive archive.tar.gz qui combine et compresse les fichiers file1.txt et file2.txt.

4. Extraction d'une archive compressée

tar -xzvf archive.tar.gz
  • Décompresse et extrait le contenu de l'archive archive.tar.gz.

4. Utilitaire zip pour créer des archives compressées

Quelle est la différence avec tar ?

Contrairement à tar, zip crée immédiatement une archive compressée, qui peut par défaut être utilisée sur Windows et d'autres systèmes.

Syntaxe générale

zip [options] <archive> <fichiers/dossiers>

Exemples d'utilisation

1. Création d'une archive zip

zip archive.zip file1.txt file2.txt
  • Crée une archive archive.zip qui inclut les fichiers file1.txt et file2.txt.

2. Archivage d'un dossier

zip -r project.zip /home/user/project
  • Crée une archive project.zip, incluant tout le dossier /home/user/project.
  • -r : ajout récursif des fichiers et dossiers.

3. Décompression d'une archive zip

unzip archive.zip
  • Extrait le contenu de l'archive archive.zip.

5. Différences entre tar, gzip et zip

Outil Archivage Compression Approche Utilisation principale
tar Paquet de fichiers Fusion des fichiers dans une archive sans compression
gzip Compression Réduction de la taille des fichiers ou des archives individuelles
zip Tout-en-un Créer des archives transportables

6. Exercice pratique

  1. Créez une archive backup.tar à partir du contenu du dossier /home/user/documents.
  2. Compressez l'archive avec gzip pour obtenir backup.tar.gz.
  3. Extrayez l'archive dans un autre répertoire, par exemple, /tmp/backup.
  4. Créez une archive zip docs.zip à partir des fichiers doc1.txt et doc2.txt.
  5. Essayez d'extraire le contenu de docs.zip avec la commande unzip.

7. Erreurs courantes et spécificités

1. Erreur "Permission denied" Si tu essaies d'archiver des fichiers dont l'accès est limité, tu obtiendras un message d'erreur. Lance la commande avec les droits administrateur : sudo.

2. Perdu dans les options ? Les options de tar peuvent être parfois déroutantes. N'oublie pas que l'ordre est important : par exemple, il faut d'abord indiquer l'action -c ou -x, puis les autres options.

3. L'archive compressée ne s'ouvre pas Si tu as accidentellement ajouté une compression sur un fichier déjà compressé (par exemple, gzip archive.tar.gz), ne panique pas. Décompresse-le simplement deux fois.

4. Archive trop volumineuse En utilisant la commande zip, exclue les fichiers temporaires ou le cache pour réduire la taille de l'archive : zip -r archive.zip folder -x "*.tmp".

5. Problèmes de compatibilité Si tu dois transférer un fichier à un utilisateur Windows, préfère zip, car il est mieux supporté sur cet OS.

Voilà, on a appris à archiver et compresser des données sous Linux. Ces outils te seront utiles pour simplifier le travail avec de grands volumes de données, leur transfert et leur protection contre les pertes. Passe au sujet suivant — tes connaissances vont continuer à grandir ! 🎉

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION