Toutes ces solutions sont intéressantes, et je vous en remercie.
Mais elles me disent comment faire autre-chose ce que je cherche.
Ma recherche est plus générale que le simple exemple de renommer en fonction de ses métadonnées (ça pourrait aussi bien être des extraits de texte ou d’autres informations… toutes choses que je sais ou pourrais faire en ligne de commande sur une liste).
La question initiale aurait due être, (indépendamment de l’exemple de renommage): est-il possible passer simplement à un script bash une liste de noms de fichiers donnée par des jockers bash, comme on peut le faire avec Perl5 et sa fonction glob (si je me souviens bien de mes très vieux souvenirs de débutant autodidacte).
Je viens de trouver, un vieux script oublié depuis longtemps, à peine modifié (boucle while pour utiliser facilement le nombre d’arguments).
La syntaxe ${!variable} de bash – que j’avais oubliée depuis longtemps – est une fonction «eval» sur la variable.
Le script suivant marche très simplement, à ma grande surprise (et peut-être à la votre?)
#!/bin/bash --
NBARG=$#
echo " $NBARG arguments reçus par le script"
i=0
while [[ "$i" -lt "$NBARG" ]]
do
((i++))
echo "Rang: $i → fichier: ${!i}"
done
#La syntaxe ${!variable} est une fonction «eval» sur $variable
Ce qui donne par exemple:
$TableauDArguments.sh *bkp r*txt
13 arguments reçus par le script
Rang: 1 → fichier: BKP_incrementale.bkp
Rang: 2 → fichier: IdentifierUSBrsync.sh.bkp
Rang: 3 → fichier: lscl.bkp
Rang: 4 → fichier: parallel.bkp
Rang: 5 → fichier: projet_latex.bkp
Rang: 6 → fichier: rsyncClevoSamsung2T.sh.bkp
Rang: 7 → fichier: rsyncClevoToshiba.sh.bkp
Rang: 8 → fichier: rsync_Elements.sh.INIbkp
Rang: 9 → fichier: svmi.bkp
Rang: 10 → fichier: rsyncECMbash.txt
Rang: 11 → fichier: rsyncSeagate4Tsimplifie.txt
Rang: 12 → fichier: rsyncStructureBug.txt
Rang: 13 → fichier: rsyncStructure.txt
Évidemment dans la boucle while, je peux enfin faire ce que je veux, comme:
Extraire un champs dans les metadonnées (par exemple champs date de la photo, à défaut champs de dernière modification, à défaut date du fichier) et l’utiliser pour renommer le fichier d’un nom plus humain!.
Je suis désolé ne n’avoir pas su m’expliquer plus clairement, mais surpris que ce script si simple fonctionne !