Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 14/05/2014, à 00:06

Postmortem

Re : [Résolu] Antislash dans nom de fichier

Salut,
Pas besoin de modifier la variable IFS :

while read -rd ''; do echo mv -i "$REPLY" "${REPLY% }"; done < <(find . -depth -type d -name '* ' -print0)

Après les options -rd de read, il s'agit de 2 simples quotes qui se suivent et non un guillemet.
En couplant ça avec -print0 dans find, on boucle correctement sur n'importe quel nom de fichier.

Édit : ajout de -depth à find, ça évitera des soucis suite au renommage.

Dernière modification par Postmortem (Le 14/05/2014, à 00:14)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#27 Le 27/05/2014, à 16:04

trax62

Re : [Résolu] Antislash dans nom de fichier

Merci ca fonctionne !
petit récap si ce post peut servir un jour :

find * | grep '\\'

-> pour trouver les fichiers ou dossiers avec un \

while read -r fic; do mv -i "$fic" "${fic//\\/}"; done < <(find -name '*\\*')

-> supprime le \ d'un nom de dossier ou fichier

while read -rd ''; do echo mv -i "$REPLY" "${REPLY% }"; done < <(find . -depth -type d -name '* ' -print0) 

-> supprime un espace en fin de fichier ou de dossier

Hors ligne