J'essaie de renommer par lots un tas de fichiers dans mon shell, et même s'il y a beaucoup de matériel à ce sujet sur Internet, je n'arrive pas à trouver de solution pour mon cas spécifique.
J'ai un tas de fichiers qui ont (ce qui semble être) un "timestamp-id":
abc_128390.png
abc_138493.png
abc_159084.png
...
que je souhaite échanger contre un compteur :
abc_001.png
abc_002.png
abc_003.png
...
Mon approche (plutôt) naïve serait quelque chose comme :
mv abc_*.png abc_{001..123}.png
De plus, je n'ai pas trouvé de moyen de le faire fonctionner avec un for
-boucle.
FWIW, malheureusement rename
n'est pas disponible sur ce système particulier.
Tout conseil serait grandement apprécié !
Réponse acceptée :
Je ne vois pas de solution qui gère l'incrémentation du compteur de manière plus intelligente, mais cela devrait fonctionner :
i=0
for fi in abc_??????.png; do
mv "$fi" abc_$i.png
i=$((i+1))
done
Il devrait être sûr d'utiliser abc_*.png
car il est développé avant le premier mv
est toujours exécuté, mais il peut être utile d'être très précis dans le sens où vous ne voulez que des fichiers avec un horodatage à six caractères à la fin.