Lorsque l’on souhaite renommer un ensemble de fichiers contenant des caractères espace, l’utilisation d’une boucle de type :
for i in `find . -name “*” ; do
…
done
n’est par vraiement envisageable, en effet, les espaces identifiés comme des séparateurs de mots font que i prend pour valeur des sous ensembles du nom.
Pour résoudre ce problème, une solution consiste à modifier la variable IFS dont le rôle est de définir les séparateur de mots dans le shell bash.
La solution peut être la suivante :
export IFS=$’\n’
for i in `find . -name “*” ; do
…
done
i prend alors successivement les noms des fichiers, espaces inclus.