Bonjour les potos, les amies, les amis, les aminches quoi,
Hélas, il ne s'agit pas là de gestes amicaux pratiqués à l'occasion de retrouvailles émouvantes.
Il est question ici des accolades utilisées avec bash, c'est moins sexy, mais ça peut rendre de fiers services.
Cet article est une brève introduction aux fonctionnalités offertes par l'usage des accolades.
Les accolades se présentent sous les formes { et }.
Pour les produire, il convient d'utiliser la touche <Alt Gr> et une touche située au-dessus du clavier alphabétique.
Sur mon clavier, je dois combiner avec la touche 4 ou ´ pour l'accolade ouvrante { et la touche + ou = pour l'accolade fermante }.
Elles peuvent être utilisées dans des scripts, mais aussi dans un terminal.
Le propos de ce billet est orienté terminal.
Les accolades s'utilisent pour créer des séries de chiffres et/ou de lettres croissantes et/ou décroissantes, entre autres.
Eh ben, rien que ça !
Dis ainsi, c'est un tantinet abscons.
Éclaircissons le paysage.
Commençons pour ouvrir un terminal.
Vous y êtes ?
Débutons simplement et saisissons sur la ligne de commande et appuyons sur <Entrée> à la fin pour obtenir le résultat :
# echo {1..5} ; echo {a..f}
1 2 3 4 5
a b c d e f
Il est possible de créer une série avec un incrément défini par l'utilisateur.
Par exemple :
# echo {1..9..2}_truc.txt ; echo {a..f..3}
1_truc.txt 3_truc.txt 5_truc.txt 7_truc.txt 9_truc.txt
a d
La série correspond aux deux premiers arguments, soit "1..9" et "a..f".
L'incrément se trouve à la fin, soit avant l'accolade terminale.
Nous aurions aussi pu utiliser des mots, par exemple :
# echo {livres,cd,dvd,vynils}
livres cd dvd vynils
C'est tout ?
Vrai, vu ainsi, ça sert à pas grand chose.
Mais, si on veut créer des fichiers vides, des répertoires, etc., ça commence à être intéressant.
Par exemple, imaginons que nous voulions créer une arborescence avec l'année et un sous-répertoire par mois sous forme numérique, et, dans chaque sous-répertoire mensuel deux sous-répertoires nommés "dépenses" et "recettes".
Ça devient déjà plus compliqué, mais pas tant que ça.
Voyons la commande :
# mkdir -p 2025/{1..12}{/dépenses,/recettes}
et pour voir le résultat :
# du -d3 2025/
0 2025/12/recettes
0 2025/12/dépenses
0 2025/12
0 2025/11/recettes
0 2025/11/dépenses
0 2025/11
0 2025/10/recettes
0 2025/10/dépenses
0 2025/10
0 2025/9/recettes
0 2025/9/dépenses
0 2025/9
0 2025/8/recettes
0 2025/8/dépenses
0 2025/8
0 2025/7/recettes
0 2025/7/dépenses
0 2025/7
0 2025/6/recettes
0 2025/6/dépenses
0 2025/6
0 2025/5/recettes
0 2025/5/dépenses
0 2025/5
0 2025/4/recettes
0 2025/4/dépenses
0 2025/4
0 2025/3/recettes
0 2025/3/dépenses
0 2025/3
0 2025/2/recettes
0 2025/2/dépenses
0 2025/2
0 2025/1/recettes
0 2025/1/dépenses
0 2025/1
0 2025/
Nous pourrions aller plus loin en créant des sous-répertoires pour le dossier "dépenses".
Par exemple, en ouvrant des dossiers "assurance", "électricité", "eau", "FAI", "nourriture"...
Voyons la commande :
# mkdir -p 2025/{1..12}{/dépenses{/assurances,/électricité,/eau,/FAI,/nourriture},/recettes}
et le résultat (limité aux deux premiers mois de l'année) :
# du -d4 2025/
...
0 2025/2/recettes
0 2025/2/dépenses/nourriture
0 2025/2/dépenses/FAI
0 2025/2/dépenses/eau
0 2025/2/dépenses/électricité
0 2025/2/dépenses/assurances
0 2025/2/dépenses
0 2025/2
0 2025/1/recettes
0 2025/1/dépenses/nourriture
0 2025/1/dépenses/FAI
0 2025/1/dépenses/eau
0 2025/1/dépenses/électricité
0 2025/1/dépenses/assurances
0 2025/1/dépenses
0 2025/1
0 2025/
Ça ouvre des perspectives, n'est-ce pas ?
Mais, c'est pas fini.
Changeons de registre.
Imaginons que vous cherchiez un fichier dont vous savez qu'il s'agit d'une librairie, par exemple.
Nous connaissons le début de son petit nom, par exemple "libncurses".
Pour le dénicher, la commande find semble toute désignée, mais plutôt que d'effectuer deux recherches dans les dossiers "lib" et "usr/lib", confions donc le boulot au terminal.
Tapons cette commande que nous validerons avec la touche <Entrée> :
# find {/lib,/usr/lib} -iname libncurses*
/lib/libncurses.so.5
/lib/libncurses.so.5.9
/lib/libncursesw.so.5
/lib/libncursesw.so.5.9
/usr/lib/libncurses.so
/usr/lib/libncurses.so.5
/usr/lib/libncursesw.so
/usr/lib/libncursesw.so.5
D'autres utilisations des accolades sont possibles, consultez les liens ci-dessous.
Liens :
Chez Tremplin Numérique : https://www.tremplin-numerique.org/comment-utiliser-lextension-daccolades-dans-bash-shell-de-linux
Pour les plus débrouillés : https://fr.unixlinux.online/mx/1001033322.html
Consultez "Expansion de l'accolade" et "Extension des paramètres" : https://fr.linux-console.net/?p=16900
Et bien d'autres, grâce à votre moteur de recherches favori avec les critères "linux accolade brace", par exemple.
Il me reste à vous souhaiter de bien vous amuser, comme d'hab !
Amitiés.