Tout est détaillé à la rubrique ‹ Parameter Expansion › du man bash.
La difficulté quand on se disperse dans les micro-commandes supplémentaires est que ce qui simplifie le traitement de cas simples, peut le compliquer pour des cas plus complexes.
‹ rename › non seulement est un paquet supplémentaire, mais dépend aussi du paquet Perl, et n’évacue pas la nécessité de savoir quelle expression regex produira l’effet désiré (le plus dur est en fait là…).
On peut vite se noyer dans les différents types de regex ou de globbing, selon les options de configuration de Bash, par défaut, ou pas. Vite un casse-tête.
sed → Basic (BRE) regular expression par défaut → sed / BRE
sed 's/\[.*\]//' <<< "$x"
bash → globbing
"${x/\[*\]/}"
rename → regex PERL
's/\[.*\]//'
(le ‹ ? › n’était pas nécessaire)
Mais rename est sympa pour les cas simples, évitant une boucle for/done.