Caractère générique Linux

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

Les caractères génériques (wildcards) Linux sont des caractères spéciaux qui vous permettent de rechercher et de manipuler plusieurs fichiers à la fois en fonction de motifs dans leurs noms. Ce sont des outils puissants pour gérer efficacement les fichiers dans l'environnement de ligne de commande. Dans ce labo (LabEx), vous apprendrez à utiliser différents caractères génériques pour effectuer des opérations courantes telles que lister, copier et supprimer des fichiers en fonction de la correspondance de motifs.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/BasicFileOperationsGroup -.-> linux/mv("File Moving/Renaming") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/FileandDirectoryManagementGroup -.-> linux/wildcard("Wildcard Character") subgraph Lab Skills linux/ls -.-> lab-271447{{"Caractère générique Linux"}} linux/cp -.-> lab-271447{{"Caractère générique Linux"}} linux/mv -.-> lab-271447{{"Caractère générique Linux"}} linux/rm -.-> lab-271447{{"Caractère générique Linux"}} linux/cd -.-> lab-271447{{"Caractère générique Linux"}} linux/mkdir -.-> lab-271447{{"Caractère générique Linux"}} linux/wildcard -.-> lab-271447{{"Caractère générique Linux"}} end

Comprendre le caractère générique astérisque (*)

L'astérisque * est le caractère générique (wildcard) le plus courant sous Linux. Il représente n'importe quel nombre de caractères (y compris zéro caractère) dans un nom de fichier. Cela le rend incroyablement utile pour travailler avec des groupes de fichiers qui partagent des motifs de nommage similaires.

Prenons l'habitude d'utiliser le caractère générique astérisque :

  1. Tout d'abord, ouvrez votre terminal et accédez au répertoire du projet :

    cd ~/project
  2. Créez un répertoire de pratique pour ce labo (LabEx) et accédez-y :

    mkdir -p wildcard_practice
    cd wildcard_practice
  3. Maintenant, créons quelques fichiers d'exemple avec lesquels travailler :

    touch file1.txt file2.txt file3.txt document1.pdf document2.pdf image.jpg
  4. Utilisez la commande ls pour lister tous les fichiers du répertoire :

    ls

    Vous devriez voir tous les fichiers que vous venez de créer :

    document1.pdf  document2.pdf  file1.txt  file2.txt  file3.txt  image.jpg
  5. Maintenant, utilisons le caractère générique astérisque pour lister uniquement les fichiers texte :

    ls *.txt

    Cette commande devrait afficher uniquement les fichiers se terminant par .txt :

    file1.txt  file2.txt  file3.txt
  6. Vous pouvez également utiliser le caractère générique pour correspondre aux fichiers qui commencent par un motif spécifique. Pour lister tous les fichiers qui commencent par "file" :

    ls file*

    Cette commande devrait afficher :

    file1.txt  file2.txt  file3.txt
  7. Pour lister tous les documents PDF :

    ls *.pdf

    Cette commande devrait afficher :

    document1.pdf  document2.pdf

Le caractère générique astérisque est polyvalent et peut être utilisé à n'importe quelle position dans le motif. Par exemple, *1* correspondrait à n'importe quel fichier qui contient le chiffre "1" n'importe où dans son nom.

Utilisation des caractères génériques avec le point d'interrogation (?)

Le point d'interrogation ? utilisé comme caractère générique (wildcard) représente exactement un caractère. Il est utile lorsque vous souhaitez correspondre des fichiers ayant des noms similaires mais qui diffèrent par un seul caractère à une position spécifique.

Explorons le fonctionnement du caractère générique point d'interrogation :

  1. Assurez-vous que vous êtes toujours dans le répertoire wildcard_practice :

    cd ~/project/wildcard_practice
  2. Créons quelques fichiers supplémentaires pour mieux illustrer l'utilisation du caractère générique point d'interrogation :

    touch file-a.txt file-b.txt file-c.txt test1.log test2.log test3.log
  3. Pour lister tous les fichiers "file-?.txt", où ? est un seul caractère :

    ls file-?.txt

    Cette commande devrait afficher :

    file-a.txt  file-b.txt  file-c.txt
  4. De même, pour lister tous les fichiers "test?.log" :

    ls test?.log

    La sortie devrait être :

    test1.log  test2.log  test3.log
  5. Vous pouvez combiner plusieurs points d'interrogation pour correspondre à plusieurs caractères uniques. Par exemple, pour correspondre à tous les fichiers texte dont le nom est de la forme "file?" :

    ls file?.txt

    Cela devrait afficher :

    file1.txt  file2.txt  file3.txt
  6. Le caractère générique point d'interrogation est particulièrement utile lorsque vous avez besoin de correspondre à un motif spécifique avec des variations à des positions précises. Par exemple, si vous souhaitez des fichiers qui se terminent par un chiffre unique suivi de .log :

    ls test?.log

Le caractère générique point d'interrogation est plus spécifique que l'astérisque car il correspond exactement à un caractère, tandis que l'astérisque peut correspondre à n'importe quel nombre de caractères.

Utilisation des crochets [] pour les classes de caractères

Le caractère générique (wildcard) des crochets [] vous permet de spécifier un ensemble ou une plage de caractères à correspondre à une position spécifique dans un nom de fichier. Cela offre plus de précision que les caractères génériques astérisque ou point d'interrogation.

Prenons l'habitude d'utiliser le caractère générique des crochets :

  1. Assurez-vous que vous êtes toujours dans le répertoire wildcard_practice :

    cd ~/project/wildcard_practice
  2. Créons quelques fichiers supplémentaires avec lesquels travailler :

    touch data-1.csv data-2.csv data-3.csv data-a.csv data-b.csv
  3. Pour lister les fichiers qui ont un chiffre à une position spécifique, vous pouvez utiliser la notation entre crochets avec une plage :

    ls data-[1-3].csv

    Cela devrait afficher :

    data-1.csv  data-2.csv  data-3.csv
  4. De même, pour lister les fichiers qui ont une lettre à cette position :

    ls data-[a-z].csv

    Cela devrait afficher :

    data-a.csv  data-b.csv
  5. Vous pouvez également lister des caractères spécifiques entre les crochets. Par exemple, pour lister les fichiers ayant soit '1' soit 'a' après "data-" :

    ls data-[1a].csv

    Cela devrait afficher :

    data-1.csv  data-a.csv
  6. Le symbole caret ^ entre crochets inverse la correspondance. Pour lister tous les fichiers "data-" sauf ceux se terminant par "1" ou "2" :

    ls data-[^12].csv

    Cette commande devrait afficher :

    data-3.csv  data-a.csv  data-b.csv

Les crochets offrent un contrôle précis lorsque vous avez besoin de correspondre des fichiers qui diffèrent par des caractères spécifiques à des positions spécifiques.

Opérations pratiques sur les fichiers avec des caractères génériques

Maintenant que nous comprenons les différents types de caractères génériques (wildcards), utilisons-les pour effectuer des opérations courantes sur les fichiers telles que la copie, le déplacement et la suppression de fichiers.

  1. Tout d'abord, assurez-vous que vous êtes dans le répertoire wildcard_practice :

    cd ~/project/wildcard_practice
  2. Créons un répertoire de sauvegarde pour stocker des copies de nos fichiers :

    mkdir backup
  3. Copions tous les fichiers texte dans le répertoire de sauvegarde en utilisant le caractère générique astérisque :

    cp *.txt backup/
  4. Vérifions que les fichiers ont été correctement copiés :

    ls backup/

    Vous devriez voir tous les fichiers texte dans le répertoire de sauvegarde :

    file-a.txt  file-b.txt  file-c.txt  file1.txt  file2.txt  file3.txt
  5. Maintenant, créons un autre répertoire pour organiser différents types de fichiers :

    mkdir csv_files pdf_files log_files
  6. Déplaçons tous les fichiers CSV dans le répertoire csv_files :

    mv *.csv csv_files/
  7. Déplaçons tous les fichiers PDF dans le répertoire pdf_files :

    mv *.pdf pdf_files/
  8. Déplaçons tous les fichiers journaux (log files) dans le répertoire log_files :

    mv *.log log_files/
  9. Vérifions que chaque répertoire contient les bons fichiers :

    echo "CSV Files:"
    ls csv_files/
    echo "PDF Files:"
    ls pdf_files/
    echo "Log Files:"
    ls log_files/

    La sortie devrait montrer les fichiers appropriés dans chaque répertoire.

  10. Enfin, nettoyons en supprimant tous les fichiers texte de sauvegarde dont le nom contient un chiffre :

    rm backup/file[0-9].txt
  11. Vérifions que seuls les fichiers texte dont le nom est une lettre restent dans le répertoire de sauvegarde :

    ls backup/

    La sortie devrait montrer :

    file-a.txt  file-b.txt  file-c.txt

Ces exemples montrent comment les caractères génériques peuvent grandement simplifier les tâches de gestion de fichiers qui nécessiteraient autrement plusieurs commandes ou une manipulation manuelle de chaque fichier.

Résumé

Dans ce laboratoire, vous avez appris à utiliser les caractères génériques (wildcards) Linux pour gérer et manipuler efficacement les fichiers. Les concepts clés abordés sont les suivants :

  1. Utilisation du caractère générique astérisque (*) pour correspondre à n'importe quel nombre de caractères
  2. Utilisation du caractère générique point d'interrogation (?) pour correspondre exactement à un caractère
  3. Utilisation des crochets [] pour correspondre à des caractères ou des plages spécifiques
  4. Application des caractères génériques à des opérations courantes sur les fichiers telles que la liste, la copie et la suppression de fichiers

Ces techniques de caractères génériques sont des outils essentiels pour tout utilisateur Linux, permettant d'économiser du temps et de réduire les erreurs lors de la manipulation de plusieurs fichiers. Elles vous permettent d'effectuer des opérations complexes sur les fichiers avec des commandes simples et concises, plutôt que d'avoir à manipuler chaque fichier individuellement.

Au fur et à mesure que vous continuerez à travailler avec les systèmes Linux, vous trouverez de nombreuses occasions d'appliquer ces motifs de caractères génériques pour rationaliser votre flux de travail et augmenter votre productivité.