unix: renommer un lot de fichiers – comment append des nombres de 1 à 4000 aux noms de fichiers de 4000 fichiers?

J’ai 4 000 fichiers et je dois append les 1 à 4 000 au début de tous les noms de fichiers.

Par exemple:

file_a.CEL file_c.CEL file_g.CEL file_x.CEL ... other_file.CEL 

Devraient devenir:

 1_file_a.CEL 2_file_c.CEL 3_file_g.CEL 4_file_x.CEL ... 4000_other_file.CEL 

Il est important que le trait de soulignement après le numéro soit ajouté. Les noms de fichiers sont totalement différents (il n’y a pas de système pour les noms de fichiers), et l’ordre dans lequel ils sont numérotés importe peu. Y a-t-il un moyen facile de faire cela en utilisant bash? Merci d’avance!

Utiliser une boucle for et mv devrait vous donner l’effet désiré. Ce n’est pas une solution particulièrement intéressante, mais c’est simple.

 COUNT=1 for file in ./*; do mv "$file" "${COUNT}_$file" let COUNT++ done 

Rubrique connexe: Renommer plusieurs fichiers à l’aide d’un script de shell

Dans votre cas, vous pouvez faire comme suit:

 n = 1 for file in *.CEL; do new_name=$n_$file n=$(($n+1)) mv $file $new_name done 
 i=1 for f in *; do echo Renaming file \"$f\" to \"${i}_${f}\" mv "$f" "${i}_${n}" i=$((i+1)) done