-->
C’est pas bien de se moquer !! Versionner des composants externes : svn externals
Apr 08

Parce qu’il me faut toujours 2 heures pour le retrouver, cette fois je le note :)

find . -type f -regex ".*\ .*" \
                -exec bash -c 'echo "$1";mv "$1" "${1// /-}"' '{}' '{}'  \;

Ceci vous permet de trouver et de renommer un fichier avec un espace.
Ici on remplace l’espace par un tiret.

Digg It!

written by Nicolas \\ tags: , , , , , , ,

5 commentaires to “bash linux, supprimer (ou renommer) les espaces dans les noms de fichier.”

  1. Cooling Says:

    Y’a beaucoup plus simple :

    find . -exec rename “s/\s/_/” {} \;

  2. COil Says:

    A quand un “snippets repository” digne de ce nom ? :)

  3. jbj Says:

    Sympa ce script. Je devrais vraiment me créer une librairie de scripts de ce genre, y’a toujours un moment ou on en à besoin!

  4. Sn4kY Says:

    Le problème avec cette commande, est lorsqu’on a une arborescence de répertoires, et que ces répertoires ont AUSSI des espaces dans les noms, une fois qu’il a renommé le répertoire, impossible pour lui de continuer a le parcourir !!!

    En relançant plusieurs la commande (find . -exec rename ‘y/ /_/’ {} \;) on finit par y arriver…il n’y a plus d’erreur…(dépends de la profondeur de l’arbo)

  5. Miss Lemon Says:

    d’où l’avantage de mettre l’option -type f pour ne toucher qu’aux fichiers (et pas aux répertoires)

Ecrire un commentaire