Bonjour
En te positionnant au sommet du répertoire que tu souhaites analyser, ce script va éliminer tous les espaces à gauche et à droite et remplacer 8 caractères spéciaux que je connais pour tous les sous-répertoires et fichiers présents. Si des doubles apparaissent, il ne va pas faire le remplacement mais signaler
# Suppression des espaces en début et fin de fichier ainsi que de queslques caractères anormaux
shopt -s globstar
for i in **/*; do
#echo "|""$i""|"
#suppression des espaces à droite et à gauche mais pas au milieu
j=${i##*( )}
j=${j%%*( )}
# suppression des espaces qui suivent le caractère /
# Il y a certainement beaucoup mieux à faire qu'une boucle
for (( v=0; v <= 20; v++ )); do
j=$(echo "$j" | sed "s\/ \/\g")
done
# remplacement d'un maxima de caractères interdits par windows ><\:"|?*
j=$(echo "$j" | tr '><"|?*' '!!!!!!')
j=$(echo "$j" | tr ':' '%')
j=$(echo "$j" | tr '\\' '%')
#echo "|""$j""|"
if [[ $i != $j ]]; then
# Vérifier si un dossier existe
if [[ -d $j ]]; then
echo " Il est impossible de changer le nom de ce fichier/dossier '$i' car présence de doublon au niveau répertoire"
else
if [[ -f $j ]]; then
echo " Il est impossible de changer le nom de ce fichier/dossier '$i' car présence de doublon au niveau fichier"
else
echo "on va renommer ce fichier avec cette commande mv -n '$i' '$j' "
mv -n "$i" "$j"
sleep 1
fi
fi
fi
done
Si tu avais été plus précis sur le message d'alerte signalé par véracrypt, tu aurais pu avoir un avis