Sostituisci il carattere di carattere jolly nei nomi di file

Non posso far funzionare questo:

Ho centinaia di file che il nostro sviluppatore di database ha inserito in modo insensato gli asterischi, in modo che abbiamo file chiamati come questo:

  • Qual è il modo migliore per impostare una variabile di ambiente in .bashrc?
  • Dove è generalmente impostato $ BASH_ENV?
  • Leggere la prima row di un file usando bash
  • caratteri regex nginx che richiedono la citazione?
  • Imansible aggiornare Bash su Debian 6.0 (Squeeze)
  • Nessun errore di file o directory durante l'esecuzione di script di avvio in Debian
  • *1*_Floorplan.jpg 

    Devo ricorsivamente ricercare (due livelli in) la ricerca e sostituire tutte le istanze di " * " in tutti i nomi di file e sostituirli con un sottolineatura, " _ ".

    Ho provato quanto segue, ma non riesco, emettendo il formato di utilizzo del command "mv" centinaia di volte (come se per each file avrebbe cercato di elaborare), come mi aspetterei se avessi una syntax non valida, ma io non riesce a trovare ciò che è sbagliato con esso:

     for x in `find . -regex '.*/\*.*'` ; do mv $x `echo $x | sed s/\*/_/g` ; done 

    Questo è su un sistema Mac (10.4), quindi è un ambiente Darwin, se ciò fa differenza.

    Per favore aiuto!

    2 Solutions collect form web for “Sostituisci il carattere di carattere jolly nei nomi di file”

    Inserisci le virgolette intorno a $ x ovunque apparirà.

     for x in `find . -regex '.*/\*.*'` ; do mv "$x" `echo "$x" | sed s/\*/_/g` ; done 

    Hai bisogno di sfuggire a tutti i * con una barra di traccia posteriore \

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.