Conservez les archives mystiques des dirigeables avec Tar

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

La commande tar sous Linux est un outil puissant utilisé pour l'archivage de fichiers et de répertoires. Cet outil permet aux utilisateurs de regrouper plusieurs fichiers et répertoires dans un seul fichier d'archive, rendant le stockage, le transfert et la sauvegarde de données plus efficaces. Dans ce lab (atelier), vous apprendrez à utiliser la commande tar pour créer des archives, afficher leur contenu et extraire des fichiers d'elles. Ces compétences sont essentielles pour les administrateurs système, les développeurs et tout utilisateur Linux qui a besoin de gérer efficacement ses données.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/CompressionandArchivingGroup -.-> linux/tar("Archiving") linux/CompressionandArchivingGroup -.-> linux/gzip("Gzip") subgraph Lab Skills linux/ls -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} linux/touch -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} linux/rm -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} linux/cd -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} linux/mkdir -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} linux/grep -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} linux/tar -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} linux/gzip -.-> lab-271397{{"Conservez les archives mystiques des dirigeables avec Tar"}} end

Création d'une structure de répertoires pour l'archivage

Avant de pouvoir créer une archive, nous avons besoin de quelques fichiers et répertoires avec lesquels travailler. Dans cette étape, vous allez créer une structure de répertoires avec divers fichiers qui seront ensuite archivés.

Tout d'abord, naviguons jusqu'au répertoire de travail par défaut :

cd ~/project

Maintenant, créons un répertoire appelé document_library avec trois sous-répertoires : reports, specifications et references :

mkdir -p ~/project/document_library/{reports,specifications,references}

La commande mkdir crée des répertoires, et l'option -p nous permet de créer les répertoires parents s'ils n'existent pas. Les accolades {} sont utilisées pour créer plusieurs sous-répertoires en une seule fois.

Ensuite, créons quelques fichiers d'exemple dans chacun de ces répertoires :

touch ~/project/document_library/reports/{quarterly,annual,monthly}.txt
touch ~/project/document_library/specifications/{product,service,system}.txt
touch ~/project/document_library/references/{guide,manual,handbook}.txt

La commande touch crée des fichiers vides. Dans ce cas, nous créons trois fichiers texte dans chaque sous-répertoire.

Vérifions que notre structure de répertoires a été créée correctement en utilisant la commande ls avec l'option -R pour lister récursivement le contenu des répertoires :

ls -R ~/project/document_library

Vous devriez voir une sortie similaire à ceci :

/home/labex/project/document_library:
references  reports  specifications

/home/labex/project/document_library/references:
guide.txt  handbook.txt  manual.txt

/home/labex/project/document_library/reports:
annual.txt  monthly.txt  quarterly.txt

/home/labex/project/document_library/specifications:
product.txt  service.txt  system.txt

Cela montre que nous avons créé avec succès notre structure de répertoires avec les fichiers d'exemple. Dans l'étape suivante, nous apprendrons à créer une archive de ces fichiers en utilisant la commande tar.

Création d'une archive avec tar

Maintenant que nous avons configuré notre structure de répertoires, utilisons la commande tar pour créer une archive du répertoire document_library dans son intégralité. La commande tar est polyvalente et dispose de nombreuses options, mais nous allons nous concentrer pour l'instant sur les plus courantes.

La syntaxe de base pour créer une archive avec tar est la suivante :

tar [options] [nom-de-l-archive] [fichiers ou répertoires à archiver]

Les options courantes incluent :

  • -c : Créer une nouvelle archive
  • -z : Compresser l'archive à l'aide de gzip
  • -v : Mode verbeux (afficher la progression)
  • -f : Spécifier le nom de fichier de l'archive
  • -C : Changer de répertoire avant d'effectuer les opérations

Créons une archive compressée de notre répertoire document_library :

tar -czvf ~/project/documents_archive.tar.gz -C ~/project document_library

Dans cette commande :

  • -c indique à tar de créer une nouvelle archive
  • -z indique à tar de compresser l'archive à l'aide de gzip
  • -v active le mode verbeux, affichant les fichiers en cours de traitement
  • -f ~/project/documents_archive.tar.gz spécifie le nom du fichier d'archive
  • -C ~/project indique à tar de changer de répertoire pour ~/project avant l'archivage
  • document_library est le répertoire que nous voulons archiver

Vous devriez voir une sortie listant tous les fichiers ajoutés à l'archive. Cela indique que l'archive est créée avec succès.

Pour vérifier que l'archive a été créée, vérifions son existence et sa taille :

ls -lh ~/project/documents_archive.tar.gz

La sortie devrait afficher quelque chose comme :

-rw-r--r-- 1 labex labex 237 Sep 22 10:00 /home/labex/project/documents_archive.tar.gz

Les options -lh avec ls affichent des informations détaillées, y compris les tailles de fichiers lisibles par l'homme. La taille réelle du fichier peut varier, mais devrait être relativement petite car nos fichiers d'exemple sont vides.

Félicitations ! Vous avez créé avec succès une archive compressée de votre structure de répertoires. Dans l'étape suivante, nous allons explorer comment afficher le contenu de cette archive sans l'extraire.

Affichage du contenu d'une archive

Avant d'extraire une archive, il est souvent utile d'en afficher le contenu pour s'assurer qu'elle contient les fichiers attendus ou pour localiser des fichiers spécifiques. La commande tar propose des options pour lister le contenu d'une archive sans l'extraire.

Pour lister le contenu de l'archive que nous avons créée, utilisez la commande suivante :

tar -tvf ~/project/documents_archive.tar.gz

Dans cette commande :

  • -t indique à tar de lister le contenu de l'archive
  • -v active le mode verbeux, affichant des informations détaillées
  • -f ~/project/documents_archive.tar.gz spécifie le fichier d'archive à examiner

Vous devriez voir une sortie similaire à ceci :

drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/references/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/guide.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/handbook.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/references/manual.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/reports/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/monthly.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/quarterly.txt
drwxr-xr-x labex/labex     0 2023-09-22 10:00 document_library/specifications/
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/product.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/service.txt
-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/specifications/system.txt

Cette sortie affiche les autorisations, le propriétaire, la taille, la date de modification et le chemin de chaque fichier et répertoire de l'archive.

Si vous souhaitez rechercher des fichiers spécifiques dans l'archive, vous pouvez rediriger la sortie vers grep. Par exemple, pour trouver tous les fichiers dont le nom contient "annual" :

tar -tvf ~/project/documents_archive.tar.gz | grep annual

Cela devrait afficher :

-rw-r--r-- labex/labex     0 2023-09-22 10:00 document_library/reports/annual.txt

Afficher le contenu d'une archive est utile lorsque vous devez vérifier ce qu'elle contient avant de l'extraire, en particulier lorsqu'il s'agit d'archives volumineuses ou lorsque vous n'êtes intéressé que par des fichiers spécifiques. Dans l'étape suivante, nous apprendrons à extraire des fichiers de notre archive.

Extraction de fichiers d'une archive

Maintenant que nous savons créer des archives et afficher leur contenu, apprenons à extraire des fichiers d'une archive. Cela est utile lorsque vous devez restaurer des fichiers à partir d'une sauvegarde ou lorsque vous recevez une archive d'une autre personne.

Pour illustrer cela, simulons d'abord un scénario où notre structure de répertoires d'origine est perdue. Nous allons supprimer le répertoire document_library :

rm -rf ~/project/document_library

La commande rm supprime des fichiers et des répertoires, et les options -rf lui indiquent d'opérer de manière récursive et de forcer la suppression sans demander de confirmation. Soyez prudent lorsque vous utilisez cette commande dans des scénarios réels, car elle supprime définitivement les fichiers.

Vérifions que le répertoire a été supprimé :

ls -la ~/project

Vous ne devriez pas voir document_library dans la liste, mais vous devriez toujours voir votre fichier documents_archive.tar.gz.

Maintenant, extrayons l'archive pour restaurer nos fichiers. La syntaxe de base pour extraire avec tar est la suivante :

tar [options] [nom-de-l-archive]

Les options d'extraction courantes incluent :

  • -x : Extraire des fichiers d'une archive
  • -z : Décompresser à l'aide de gzip
  • -v : Mode verbeux (afficher la progression)
  • -f : Spécifier le nom de fichier de l'archive
  • -C : Changer de répertoire avant l'extraction

Extrayons notre archive :

tar -xzvf ~/project/documents_archive.tar.gz -C ~/project

Dans cette commande :

  • -x indique à tar d'extraire des fichiers
  • -z indique à tar de décompresser l'archive compressée avec gzip
  • -v active le mode verbeux, affichant les fichiers en cours d'extraction
  • -f ~/project/documents_archive.tar.gz spécifie le fichier d'archive
  • -C ~/project indique à tar d'extraire les fichiers dans le répertoire ~/project

Vous devriez voir une sortie listant tous les fichiers en cours d'extraction, similaire à ce que vous avez vu lors de la création de l'archive.

Vérifions que notre structure de répertoires a été restaurée :

ls -R ~/project/document_library

Vous devriez voir la même structure de répertoires et les mêmes fichiers que nous avons créés à l'origine :

/home/labex/project/document_library:
references  reports  specifications

/home/labex/project/document_library/references:
guide.txt  handbook.txt  manual.txt

/home/labex/project/document_library/reports:
annual.txt  monthly.txt  quarterly.txt

/home/labex/project/document_library/specifications:
product.txt  service.txt  system.txt

Si vous ne voulez extraire que des fichiers spécifiques d'une archive, vous pouvez spécifier leurs chemins après le nom de l'archive. Par exemple, pour extraire uniquement le répertoire reports :

mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports

Cela extraira uniquement le répertoire reports et son contenu dans le répertoire extracted_reports.

Félicitations ! Vous avez appris avec succès à extraire des fichiers d'une archive à l'aide de la commande tar. Cette compétence est essentielle pour restaurer des sauvegardes, installer des logiciels à partir de leur code source et de nombreuses autres opérations sous Linux.

Résumé

Dans ce laboratoire (lab), vous avez appris à utiliser la commande tar sous Linux pour gérer les archives de fichiers. Vous avez pratiqué plusieurs compétences essentielles :

  1. Création d'une structure de répertoires avec des fichiers pour préparer l'archivage
  2. Création d'une archive compressée en utilisant la commande tar avec les options -czvf
  3. Affichage du contenu d'une archive sans l'extraire en utilisant les options -tvf
  4. Extraction de fichiers d'une archive pour restaurer des données en utilisant les options -xzvf

Ces compétences sont fondamentales pour de nombreuses opérations sous Linux, notamment les procédures de sauvegarde et de restauration, l'installation de logiciels et la gestion de fichiers. La commande tar est un outil puissant dans l'environnement Linux, et comprendre comment l'utiliser efficacement vous aidera à gérer vos données de manière efficiente.

N'oubliez pas les options clés de la commande tar :

  • -c : Créer une nouvelle archive
  • -x : Extraire des fichiers d'une archive
  • -t : Lister le contenu d'une archive
  • -z : Utiliser la compression gzip
  • -v : Mode verbeux (afficher la progression)
  • -f : Spécifier le nom de fichier de l'archive
  • -C : Changer de répertoire avant d'exécuter les opérations

Maintenant, vous pouvez utiliser avec confiance la commande tar pour créer des sauvegardes, partager des fichiers et restaurer des données dans votre environnement Linux.