Memo: remplacer noms de fichiers et noms de repertoires avec des caractères non voulus

Ce batch bash renomme fichiers et répertoires dont le nom ne match pas avec [^A-Za-z0-9\.()\/], les caractères non voulus sont remplacés par -.

for i in `find . -exec ls -i "{}"  \;  | grep -v '/' | cut -d " " -f1 | grep -v '.:'`
  do
   clean=`find . -inum "$i" | sed -e"s/[^A-Za-z0-9\.()\/]/-/g"`
   find . -inum "$i" -exec mv "{}" "$clean" \;
 done;

Afin de prévenir des caractères non supportés, des problèmes d’encodage et des renommages récursifs, on utilise les node id des fichiers lors du renommage.