Renommer dossiers et fichiers sans espace

Les deux méthodes devraient marcher mais j'ai pas détaillé leur fonctionnement, à tester avec prudence.

Script de Yannk

#!/bin/sh
for a in * ;do
b=$(echo $a | sed -e 's/[[:blank:]]/_/g');
if [ -e "$b" ];then
echo "">/dev/null;
else
mv "$a" "$b";
fi
done

Alternative de Branch

Trouvé sur Debian, ayant l'intérêt d'être récursif.

#!/bin/sh

find "$1" -depth | while read chemin; do
  prefixe=`echo "$chemin" | sed 's/[^/]*$//'`
  suffixe=`echo "$chemin" | sed -e 's/.*\///' -e 's/ /_/g'`
  mv -T "$chemin" "$prefixe$suffixe"
done