- s'il y a trop de fichiers, `ls *` débordera
- si les noms de fichiers contiennent un ou plusieurs espaces l'echo renvera une commande mv erronnée
- s' il y a des doublons: il y aura des pertes: ex tété, tête (peu probable dans le même dossier)
donc :
- utiliser find "pipé" dans un xarg
- utiliser les" autour de la variable $i et changer la variable d'environnement IFS : IFS=$'\n'
- tester l'existence du fichier cible ou utiliser l'option -i de mv. (qui devrait déjà être un alias dans la plupart des systèmes)
l'habitude de l'echo pour vérifier la justesse du script est une bonne astuce, il suffit ensuite de "piper" le script dans bash pour que l'exécution soit effective.
ps: moi j'utilise le script rename présent dans la plupart des distributions.
[^] # Re: Plutôt une boucle ...
Posté par B. franck . En réponse au message Ligne de commande pour modifier un nom de fichier. Évalué à 6.
- s'il y a trop de fichiers, `ls *` débordera
- si les noms de fichiers contiennent un ou plusieurs espaces l'echo renvera une commande mv erronnée
- s' il y a des doublons: il y aura des pertes: ex tété, tête (peu probable dans le même dossier)
donc :
- utiliser find "pipé" dans un xarg
- utiliser les" autour de la variable $i et changer la variable d'environnement IFS : IFS=$'\n'
- tester l'existence du fichier cible ou utiliser l'option -i de mv. (qui devrait déjà être un alias dans la plupart des systèmes)
l'habitude de l'echo pour vérifier la justesse du script est une bonne astuce, il suffit ensuite de "piper" le script dans bash pour que l'exécution soit effective.
ps: moi j'utilise le script rename présent dans la plupart des distributions.