Caractères génériques et globbing sous Linux : l’art de viser large
Dans l’univers impitoyable du terminal Linux, taper des noms de fichiers entiers, c’est un peu comme écrire une lettre manuscrite à l’ère des e-mails. Heureusement, il existe le globbing : un mécanisme qui permet d’utiliser des caractères génériques pour filtrer, sélectionner, et manipuler des fichiers plus efficacement que jamais.
Les trois stars du globbing
- * : correspond à zéro ou plusieurs caractères. C’est le glouton du terminal.
- ? : correspond à un seul caractère. Ni plus, ni moins. Il aime la précision.
- [] : permet de spécifier un ensemble ou une plage de caractères. C’est le sniper de la sélection.
Exemples avec ls
# Tous les fichiers ls * # Tous les fichiers .txt ls *.txt # Tous les fichiers dont le nom commence par "log" ls log* # Tous les fichiers ayant un nom de 5 caractères ls ????? # Fichiers qui commencent par une lettre entre a et c ls [a-c]* # Tous les fichiers sauf ceux contenant un chiffre ls [!0-9]*
Exemples avec rm (supprimer)
# Supprimer tous les fichiers .bak rm *.bak # Supprimer les fichiers commençant par "temp" rm temp* # Supprimer les fichiers dont le nom est une lettre rm ?.txt
Exemples avec cp (copier) et mv (déplacer)
# Copier tous les fichiers .jpg dans un dossier cp *.jpg /home/user/images/ # Déplacer les fichiers avec 6 lettres exactes mv ?????? /home/user/archive/ # Copier les fichiers de 2023 cp *2023* sauvegarde/
Autres exemples utiles
# Afficher les fichiers qui se terminent par .sh ou .py ls *.{sh,py} # Supprimer tous les fichiers sauf les fichiers .conf rm !( *.conf ) # Nécessite extglob (shopt -s extglob) # Copier tous les fichiers sauf ceux commençant par "test" cp !(test*) backup/ # Nécessite extglob aussi
Attention aux pièges
- Le shell interprète les globbing patterns, pas les commandes. Si vous mettez des guillemets autour, le shell n’expanse pas :
ls "*.txt"
cherche littéralement un fichier nommé*.txt
. - Pour activer des patterns plus évolués comme
!(...)
, vous devez activerextglob
:shopt -s extglob
Conclusion
Le globbing sous Linux, c’est comme du tri sélectif à grande vitesse. Bien utilisé, il vous fera gagner des heures. Mal utilisé, il peut raser un répertoire complet plus vite qu’un script mal écrit. Soyez précis, soyez prudents, mais surtout : apprenez à l’aimer.
Et rappelez-vous : le terminal ne fait pas de cadeaux, mais il adore l’efficacité.