Comme d'autres l'ont mentionné, rename
est bon dans ce domaine, mais lisez la page de manuel (man rename
) avant de l'essayer. Il existe au moins deux outils entièrement différents appelés rename
et celui que vous avez dépendra de votre distribution. Les appeler incorrectement peut être dangereux.
Voici la page de manuel de la version basée sur perl de Larry Wall fournie avec Ubuntu. Vous lui donnez une expression perl comme rename 's/\.sql$/.php/' *.sql
Voici la page de manuel pour le changement de nom fourni avec les anciennes distributions Red Hat et CentOS. L'utilisation est une simple substitution de chaîne comme rename .sql .php *.sql
Vous pouvez également utiliser une doublure bash pour traiter chaque fichier un à la fois :
$ for f in *.sql; do mv -i "$f" "${f%%.*}.php"; done
Il y a rename(1)
, qui n'utilise pas d'expressions régulières, mais peut résoudre votre problème :
rename .sql .php *.sql
Il y a aussi mmv(1)
, mais je ne sais pas comment cela fonctionne.
Bonjour,
Vous pouvez également essayer d'entrer
for i in $(\ls -d *.sql)
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done
Ou pour le faire utiliser les regex, changez-le légèrement en
for i in $(\ls -d | egrep -e '.*\.sql')
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done
pour un peu de plaisir de codage shell. (- :