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:

  • Ha fatto un gatto / dev / urandom - Terminale rotto
  • come abbinare uno spazio in una variabile bash
  • Come migrare la chiave ssh nel nuovo server CentOS?
  • Cercare uno strumento di coda per Linux per colorszzare e sopprimere le righe di regx?
  • SSH in una casella con un IP spesso modificato
  • Bash: menu completo solo per alcune partite
  • *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.